在Matlab R2015b中使用音频写入视频时出错

在Matlab R2015b中使用音频写入视频时出错,matlab,audio,video,Matlab,Audio,Video,我正在编写一个函数,将mp3中的一些声音放入视频中,如果我试图保存mp4文件,就会出错。如果它是一个avi文件,则可以。问题是,avi将因此变得更大。错误是: 使用vision.VideoFileWriter/step时出错输入参数过多; 预期为1(除对象句柄外),实际为2。错误 p10\u仅看到\u阳性 步骤(视频编写器、im、au) 这是我的密码: function p10_see_only_positive(str) % function to put audio and video to

我正在编写一个函数,将mp3中的一些声音放入视频中,如果我试图保存
mp4
文件,就会出错。如果它是一个
avi
文件,则可以。问题是,
avi
将因此变得更大。错误是:

使用vision.VideoFileWriter/step时出错输入参数过多; 预期为1(除对象句柄外),实际为2。错误 p10\u仅看到\u阳性 步骤(视频编写器、im、au)

这是我的密码:

function p10_see_only_positive(str)
% function to put audio and video together

video_str = sprintf('./videos/%s.mp4', str);

% found out how many frames does the video have
vid = VideoReader(strcat('./videos/', str, '.mp4'));

% check input
if exist(video_str,'file') == 2
    cap = cv.VideoCapture(video_str);
    [y, fs] = audioread(sprintf('./videos/%s.mp3', str));

    val = fs/vid.FrameRate;
else
    error('Input file not exist');
end

% prepare video
videoFWriter = vision.VideoFileWriter(sprintf('./videos/final_%s.mp4', str), ...
    'FrameRate', vid.FrameRate, 'FileFormat', 'MPEG4', ...
    'AudioInputPort', true);

for ii = 1:10000
    im = cap.read;
    au = y(val*(ii - 1) + 1: val*ii, :);

    if isempty(im)
        warning('End of file');
        break;
    else
        step(videoFWriter, im, au);
    end
end

fprintf('Video: %d\n', nvid);

release(videoFWriter);
end
这是mp4中的视频文件编写器:

val = 

  Properties:
          Filename: './videos/final_jornal_all_1.mp4'
        FileFormat: 'MPEG4'                          
         FrameRate: 25                               
    FileColorSpace: 'RGB'                            
           Quality: 75  
现在是
avi
one:

val = 

  Properties:
           Filename: './videos/final_jornal_all_1.mp4'
         FileFormat: 'AVI'                            
     AudioInputPort: true                             
          FrameRate: 25                               
    AudioCompressor: 'None (uncompressed)'            
    VideoCompressor: 'None (uncompressed)'            
     FileColorSpace: 'RGB' 
我猜
mp4
格式无法识别音频输入


有解决办法吗

你用什么MATLAB版本?我编辑了标题,谢谢,是R2015b。你用什么MATLAB版本?我编辑了标题,谢谢,是R2015b。