Reading a video file with audio and writing it back to another video file (both image frames and audio))

조회 수: 13(최근 30일)
JT
JT 2020년 7월 27일
댓글: JT 2020년 8월 7일
I am trying to read an .mp4 file which has both audio & video and I want to write back the video & audio to another file.
This is what I have done so far.
videoFReader = vision.VideoFileReader('CB1.mp4', 'AudioOutputPort', true); %CB1 is the original video file
videoFWriter = vision.VideoFileWriter('myFile.avi', ...
'FrameRate',videoFReader.info.VideoFrameRate, 'AudioInputPort', true);
for i=1:500
[videoFrame, audio] = videoFReader();
videoFWriter(videoFrame, audio);
end
release(videoFReader);
release(videoFWriter);
When I run this code, I get the following error
Error using VideoFileReader
the audio input stream has become unresponsive.
When I play myFile.avi, the audio is distorted (probably sampled at a different rate from the original sampling rate).
Could some one help me with this? I am not restricted to using vision.VideoFileReader, the purpose is to read a video file and write it back, but with the audio intact.

답변(1개)

Rajani Mishra
Rajani Mishra 2020년 8월 2일
Refer to VideoReader function and other functions from "Read or Write Video" section of this link : https://in.mathworks.com/help/matlab/audio-and-video.html
  댓글 수: 1
JT
JT 2020년 8월 7일
Dear Rajani,
Based on your comments, this is the code which I wrote:
v1 = VideoReader('xylophone.mp4'); % original file
v2 = VideoWriter('newfile.avi'); % new file
open(v2)
while hasFrame(v1)
frame = readFrame(v1);
writeVideo(v2,frame)
end
close(v2)
I am trying to duplicate 'xylophone.mp4' and 'newfile.avi' is my new file. The issue is that the audio in 'xylophone.mp4' is lost during this process. As mentioned in my question, my requirement is to create a file with both audio and video.
Thanks

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by