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