首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >写入未压缩的AVI视频

写入未压缩的AVI视频
EN

Stack Overflow用户
提问于 2011-10-04 08:21:36
回答 3查看 1.5K关注 0票数 1

有没有什么简单小巧的库或者代码示例可以用c++编写未压缩的avi视频文件?

我找到的每个资源都使用windows的视频,我需要它是可移植的。

我试着看了AVI容器文档,但它看起来真的很麻烦。

EN

回答 3

Stack Overflow用户

发布于 2011-10-04 08:29:19

我自己没有做过,但我建议使用ffmpeg (LGPLv2.1/GPLv2+)中的libavformat

票数 0
EN

Stack Overflow用户

发布于 2011-10-04 10:37:56

如果您想要超级简单的东西,那么将BMP作为编号序列写入磁盘,然后通过system()或类似如下所示的方式调用ffmpeg

代码语言:javascript
复制
ffmpeg -i picture_%04d.bmp -r 15 -vcodec rawvideo -y output.avi

注意:-r参数表示您希望最终电影的帧率。

您可以通过调用ffmpeg所基于的libavformat/libavcodec库来获得相同的结果,但这可能不符合您的“小”和“简单”要求。

票数 0
EN

Stack Overflow用户

发布于 2012-03-22 16:33:21

总是有OpenCV,它是多平台的,相对容易推送数据。

或者-您可以始终通过管道将视频数据传输到另一个可执行文件。

例如,在unix中,您可以这样做:

在你的程序中:

代码语言:javascript
复制
char myimage[640*480*4];
// read data into myimage
fputs(myimage,1,640*480*4,stdout);

在运行你的程序的脚本中:

代码语言:javascript
复制
./myprogram | \
mencoder /dev/stdin -demuxer rawvideo -rawvideo w=640:h=480:fps=30:format=rgba \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=9000000 \
-oac copy -o output.avi

(请注意,这确实会压缩视频-解压只是更改mencoder命令行的问题)

我相信你也可以这样使用ffmpeg,或者x264。你也可以从你的程序中启动编码器,然后写到管道中(如果你使用一个库,整个过程就会变得简单)-这应该可以在Windows,Linux或Mac上工作(对mencoder命令行做一些小的修改)。

显然也不存在许可问题(除了mencoder可执行文件的分发),因为您没有链接到任何代码,也没有在中编译任何内容。

虽然不完全是你想要的,但它确实有一个好处,那就是第二个处理器将自动用于编码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7642099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档