在Matlab R2015b中使用音频写入视频时出错
我正在编写一个函数,将mp3中的一些声音放入视频中,如果我试图保存在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
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。