2014-12-27 41 views
2

如果我執行這個語句或在MATLAB 2012B類似videoFileWriter甚至multimediafilereader視頻在MATLAB - 音頻輸出端口讀取並不初步認識

videoFileReadera = vision.VideoFileReader(filename,'AudioOutputPort',true); 

我得到的警告,

Warning: The AudioOutputPort property is not relevant in this configuration of the System object. 

or with AudioInputPort... 

我知道它只是一個警告,但對象無法讀取或寫入音頻文件?

請告訴我如何讀取視頻和音頻組合文件,並將其寫回爲單個視頻和音頻組合文件。

回答

2
clear all; 
close all; 
clc; 
VidObj=VideoReader('E:\workspace\mat2012b\video compression\original.mp4'); 
n=VidObj.NumberOfFrames; 
videoFReader = vision.VideoFileReader('original.mp4'); 
videoFWriter = vision.VideoFileWriter('vid_new_compressed_ffd5.avi',... 
    'AudioInputPort',1,'AudioDataType','int16','VideoCompressor','ffdshow video encoder','FileFormat','avi',... 
    'FrameRate',videoFReader.info.VideoFrameRate); 
[audio,fs]=audioread('original.mp4'); 
op=floor(fs/videoFReader.info.VideoFrameRate); 

for i=1:n 
    videoFrame= step(videoFReader); 
    audios=audio((i-1)*op + 1 : i*op , :); 
    step(videoFWriter, videoFrame,audios); 
end 

release(videoFReader); 
release(videoFWriter); 

上面的代碼讀取音頻和視頻,並寫回音頻和視頻。我試圖讓.mp4作爲輸出它沒有工作。此代碼可以將.avi和.wmv作爲輸出。

2

vision.VideoFileReader僅支持某些文件格式(如AVI,WMV,某些MPEG-1/2格式)的音頻閱讀。它不支持從MP4文件讀取音頻。

同樣,VideoFileWriter僅支持將音頻寫入AVI和WMV文件。

希望這會有所幫助。

使用audioread讀取音頻和VideoFileReader來讀取視頻的代碼片段並不總能保證某些文件格式的音頻和視頻之間的同步。

希望這會有所幫助。