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

时间:2019-02-18 03:16:21

标签: c++ opencv

我正尝试使用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

1 个答案:

答案 0 :(得分:0)

根据此链接,Writing x264 from OpenCV 3 with FFmpeg on Linux终端消息     with open('list.txt', 'r') as file: x = input("#: ") x = x.lower() for line in file: line = line.lower() line = line.strip() temp_x = x is_valid=True for letter in line: if letter not in temp_x: is_valid = False break temp_x = temp_x.replace(letter, '', 1) if is_valid: print(line) 不是错误,而是警告编解码器类型与ffmpeg和mp4容器不兼容。但是,它会生成输出视频文件。

如果MJPG编解码器对您而言无关紧要,请尝试将其替换为OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 8 and format 'mp4 / MP4 (MPEG-4 Part 14)'并检查输出。

0x21

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

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

谢谢