繁体   English   中英

在Ubuntu中使用videoWriter(OpenCV)将视频另存为MP4时出错

[英]Error while saving video as MP4 using videoWriter(OpenCV) in Ubuntu

我正在尝试使用videoWriter函数将视频文件保存为ubuntu16.04中的MP4格式

int frame_width = cap.get(CV_CAP_PROP_FRAME_WIDTH);
int frame_height = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
VideoWriter video("/home/Desktop/1.mp4",CV_FOURCC('M','J','P','G'),10, Size(frame_width,frame_height));

但是我得到如下错误:

OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 8 and format 'mp4 / MP4 (MPEG-4 Part 14)' 

OpenCV: FFMPEG: fallback to use tag 0x0000006c/'l???

当我将输出文件扩展名更改为.avi时,没有错误,但VLC播放器不显示任何视频。 我也尝试过不同的球员,但徒劳。

我什至做以下事情,以为我的VLC可能是一个问题,但是没有用。 确实需要解决方案

sudo apt-get ubuntu-restricted-extras

按照此链接, 在Linux上用FFmpeg从OpenCV 3编写x264时 OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 8 and format 'mp4 / MP4 (MPEG-4 Part 14)'终端消息OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 8 and format 'mp4 / MP4 (MPEG-4 Part 14)'不支持错误,但警告编解码器类型与ffmpeg和mp4容器不兼容。 但是,它会生成输出视频文件。

如果MJPG编解码器对您而言无关紧要,请尝试将其替换为0x21并检查输出。

VideoWriter video("/home/Desktop/1.mp4",0x21,10, Size(frame_width,frame_height));

如果您的视频仍然无法播放,则可能是VideoWriter没有将任何帧写入视频。 您可以通过算法检查输出的书面视频中是否有任何帧。

有关更多说明,您可以检查VideoWriter类参考https://docs.opencv.org/3.4.3/dd/d9e/classcv_1_1VideoWriter.html

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM