我想将视频转换功能添加到我正在编写的程序中.FFmpeg的命令行界面只有ffmpeg -i InputFile OutputFile,但是有没有办法把它当做一个库来使用,这样我就可以做类似ffmpeg_convert(InputFile, OutputFile)的事情了呢?

我希望我不必直接使用libavcodec,因为我认为在格式之间进行转换要比一行函数复杂得多.如果FFmpeg不能很容易地进行 retrofit 来实现这一点,那么是否有另一个基于它的库可以做到这一点?我听说过libvlc,但它似乎只公开了一个video playing API,而不是视频转换.

谢谢你.

推荐答案

你需要libavcodeclibavformat.FAQ告诉你:

4.1是否有示例说明如何使用FFmpeg库,特别是libavcodec和libavformat?

是.阅读FFmpeg文档的开发人员指南.或者,判断已经在(projects.html)合并了FFmpeg的许多开放源码项目中的一个的源代码.

FFmpeg文档指南可以在ffmpeg.org/documentation.html中找到,包括Developer's guide.我建议查看libavformat/output-example.c,或者ffmpeg命令行实用程序本身的源代码.

C++相关问答推荐

char为16位且Short也为16位的c环境合法吗

为什么PLT表中没有push指令?

从内联程序集调用Rust函数和调用约定

如何解决C中的严格别名?

在编译时参数化类型定义

如果dim指定数组中的数据量,使用dim-1会不会潜在地导致丢失一个元素?

如何在C中打印包含扫描字符和整数的语句?

对重叠字符串使用MemMove

用gcc-msse 2编译的C程序包含AVX 1指令

如何将另一个数组添加到集合中,特别是字符串?

在编写代码时,Clion比vscode有更多的问题指示器

接受任何参数的函数指针是否与接受不同参数的函数兼容

错误...的多个定义(&Q)首先在这里定义&

pthread_create的用法

为什么我无法访问C语言中的文件

在我的第一个C语言中观察到的错误';你好世界';程序

STM32:代码的执行似乎取决于它在闪存中的位置

C 语言中霍尔分区的快速排序算法

`void foo(int a[static 0]);` 有效吗?

初始化动态分配的布尔二维数组的最佳方法是什么?