gpt4 book ai didi

c++ - 无法播放 OpenCV 创建的视频(使用 Ubuntu 12.04)

转载 作者:行者123 更新时间:2023-12-04 19:18:38 28 4
gpt4 key购买 nike

我试图从 OpenCV 创建的一系列图像中编写视频。但是,我在写完视频后无法打开它们。我想有一个编解码器问题。我发现错误的确切来源非常困难。这是我的代码:

    Size size = Size(vecOfMats[0].rows,vecOfMats[0].cols);
int codec = CV_FOURCC('D', 'I', 'V', 'X');

VideoWriter videoWriter;
videoWriter.open(outputFilename,codec,15.0,size,true);

for(int z=0; z < vecOfMats.size(); z++)
{
videoWriter.write(vecOfMats[z]);
}
videoWriter.release();

我也尝试了所有这些编解码器但没有成功(OpenCv 找不到编解码器或视频无法打开):
int codec = CV_FOURCC('P','I','M','1');   // = MPEG-1 codec
int codec = CV_FOURCC('M','J','P','G'); // = motion-jpeg codec - cannot be played by VLC
int codec = CV_FOURCC('M', 'P', '4', '2');// = MPEG-4.2 codec - not found
int codec = CV_FOURCC('D', 'I', 'V', '3');// = MPEG-4.3 codec - not found
int codec = CV_FOURCC('D', 'I', 'V', 'X');// = MPEG-4 codec - cannot be played by VLC
int codec = CV_FOURCC('U', '2', '6', '3');// = H263 codec - must have w/h = 4
int codec = CV_FOURCC('I', '2', '6', '3');// = H263I codec - not found

我什至使用了之前通过 OpenCV 打开的视频的编解码器(没有成功):
string filename = "/path/to/the/video/myVideo.avi";
VideoCapture capture(filename);
int ex = static_cast<int>(capture.get(CV_CAP_PROP_FOURCC)); // Get Codec Type- Int form
char EXT[] = {(char)(ex & 0XFF) , (char)((ex & 0XFF00) >> 8),(char)((ex & 0XFF0000) >> 16),(char)((ex & 0XFF000000) >> 24), 0};// Transform from int to char via Bitwise operators
cout<<"Codec: "<<ex<<endl;
VideoWriter videoWriter;
videoWriter.open(outputFilename,ex,15.0,size,true);

我什至不确定问题出在我的 OpenCV 还是我的 Ubuntu 上:/。
(我尝试使用默认的视频播放器和 vlc 打开它们)

最佳答案

由于我放弃了使用 Opencv 编写视频,我只想提一下我是如何解决我的问题的。将每个图像保存为 png 文件后,我使用 linux 命令行中的 ffmpeg 将图像序列写入视频。

图片按顺序命名如下:
00001.png,
00002.png,
00003.png,
[…]

然后我使用这个命令

ffmpeg -i %5d.png -vcodec mpeg4 test.avi

关于c++ - 无法播放 OpenCV 创建的视频(使用 Ubuntu 12.04),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28200349/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com