我想添加视频转换功能,我写的程序。FFmpeg的命令行接口就是ffmpeg -i InputFile OutputFile
,但是有没有办法把它作为一个库来使用,这样我就可以做类似ffmpeg_convert(InputFile, OutputFile)
的事情了?
我希望我不必直接使用libavcodec,因为我想它将比一行格式之间的转换函数复杂得多。如果FFmpeg不能很容易地进行改造来做到这一点,那么是否有另一个基于它的库可以做到这一点?我听说过libvlc,但它似乎只公开了一个视频 * 播放 * API,而不是视频转换。
3条答案
按热度按时间xxb16uws1#
你需要
libavcodec
和libavformat
。FAQ告诉你:4.1有没有示例说明如何使用FFmpeg库,特别是libavcodec和libavformat?
是的。请阅读FFmpeg文档的开发者指南。或者,检查已经在(projects.html)中包含FFmpeg的许多开源项目之一的源代码。
FFmpeg文档指南可以在ffmpeg.org/documentation.html找到,包括Developer's guide。我建议查看
libavformat/output-example.c
或者ffmpeg
命令行实用程序本身的源代码。uqxowvwt2#
如果你只是想把对ffmpeg的调用作为函数而不是系统调用,你可以很容易地做到。
在ffmpeg.c中,更改:
然后在你调用ffmpeg函数时,传入一个模仿命令行的数组。为了使它更容易使用一个函数来创建argc,argv变量。
szqfcxe23#
是的,你必须使用libavcodec和libavformat。我认为你应该阅读ffmpeg源代码中的ffplay. c。我觉得你从那份文件开始会更容易些。