【发布时间】:2011-01-24 23:56:44
【问题描述】:
我想在我正在编写的程序中添加视频转换功能。 FFmpeg 的命令行界面就是ffmpeg -i InputFile OutputFile,但是有没有办法将它用作库,所以我可以做类似ffmpeg_convert(InputFile, OutputFile) 的事情?
我希望我不必直接使用 libavcodec,因为我想它会比在格式之间转换的单行函数复杂得多。如果 FFmpeg 不能轻易改装来做到这一点,是否还有另一个基于它的库呢?我听说过 libvlc,但这似乎只公开了一个视频播放 API,而不是视频转换。
谢谢。
【问题讨论】:
-
只是出于好奇,您为什么更愿意将其用作 DLL? exec() 的缺点是什么?
-
我不想在单独的进程中运行它,因为 AFAIK 我无法监控它的进度或在它完成后运行一个函数。
-
恕我直言,在单独的进程中运行
ffmpeg是更好的主意,这样您的应用程序就不会在漫长的视频编码过程中卡住。 -
我总是可以在不同的线程中运行它;我的程序已经是多线程的,所以这不是问题。
-
@AlexCohn 啊,软件中的哪些想法在 10 年后仍然很好?在这十年中,我了解了沙盒、云、智能手机、视频编解码器的漏洞以及许多其他很酷的东西。一切都有权衡。
标签: c ffmpeg mpeg ogg libavcodec