ffmpeg - 无需命令行即可使用 libav?

标签 ffmpeg command libav

我使用下面的命令来转换文件

./avconv -i inputFile -vcodec libx264 -trellis 2 -crf 23 -tune psnr -vf Crop='trunc(iw/2)*2:trunc(ih/2)*2' -y 输出文件

但是,我不想使用这个命令,我想创建一个像

这样的函数

convert(char *inputFile, char *outputFile)。 (我的函数的选项就像命令行中的选项)

然后我将从我的主函数中调用它 例如

int main(){ 
    convert(in01, out01); 
    convert(in02, out02); 
    convert(in03, out03); 
    return 0; 
} 

我还读过this post 。但我不清楚。
谁能告诉我如何解决这个问题?我用谷歌搜索了很多次但没有找到解决方案。

最佳答案

假设您使用的是 Linux 操作系统...

您的问题的解决方案更多的是关于如何在 C 中执行进程。因此,与 ffmpeg 无关,而是与 Linux C 中的编程有关。

基本上,您需要首先从 C 函数“ fork ”一个进程,然后用“avconv”交换(执行) fork 进程,并将参数传递到该进程中。

http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html

关于ffmpeg - 无需命令行即可使用 libav?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11500544/

相关文章:

c# - 从图像生成视频并添加音频时,视频无法播放

unix - 如何将帧写入视频文件?

powershell - 电源外壳 : A command as a variable with parameter

FFMPEG/libav : How is UYVY422 written inside AVFrame structure?

c++ - 使用 libavcodec 解码音频并使用 libAO 播放?

c - FFMPEG 库添加填充处理的平面/帧

hyperlink - ffmpeg 链接错误 : undefined reference in library sources

linux - Unix 点命令

windows - Perl:在新的 cmd.exe 中发出命令

ffmpeg - ffmpeg 文件输出格式中的特殊字符是什么意思?