MATLAB: How to combine audio and video

audioComputer Vision Toolboxvideo

it will run.. but not play the video… please tell me what the problem and how to resolve that?
videoFReader = vision.VideoFileReader('video1.avi');
[AUDIO,Fs] = audioread('audio1.wav');
videoFWriter = vision.VideoFileWriter('newvideo.avi','AudioInputPort',true);
videoFrame = step(videoFReader);
step(videoFWriter,videoFrame,AUDIO);
release(videoFReader);
release(videoFWriter);

Best Answer

  • You are writing all of the audio for the first frame and only reading and writing one frame.
    you need to loop reading one input frame and writing that frame out together with the audio that matches it. For example if your audio output rate were 44100 and your video output were 22 frames per second then you should emit roughly 2000 audio samples for each video frame .
    You might want to buffer() your audio to make it easier to write the appropriate amount of audio per frame .