我目前正在将h.264基本流(后缀为.264的文件)转换为传输流(后缀为.ts的文件)。我已经使用ffmpeg命令行"ffmpeg -i in.264 -an -vcodec copy -f mpegts out.ts“成功地完成了转换。
现在,我想使用我自己的C++代码,通过调用ffmpeg的库来实现这个转换。我已经下载了预编译的ffmpeg库(libavcodec,libavformat等)。我的输入h.264是预先录制的文件,而不是实时流,所以我的输出.ts文件。所以我的问题是,我应该调用库中的哪些函数来实现转换?
发布于 2012-07-03 19:11:46
在Linux中安装ffmpeg之后,您将看到一个名为ffmpeg.c的示例文件。有许多选项来设置这个文件中的解码参数,例如opt_audio_codec,opt_video_codec,opt_audio_rate,opt_video_rate,opt_default等。只需使用适当的函数从您的命令(-i in.264 -an -vcodec copy -f mpegts out.ts)设置必要的参数,然后再从ffmpeg.c文件的"main“函数调用"transcode”或"av_encode“函数即可。
发布于 2012-07-03 02:27:13
它不像列出库调用那么简单。这是一个旧的tutorial,它将帮助您开始读取输入文件。还有一个名为decoding_encoding.c的示例,它包含在ffmpeg源代码中。这些应该会帮助你入门。
发布于 2012-07-03 14:58:02
您不需要在自己的代码中执行此操作。您可以只通过编程方式生成ffmpeg进程。在Windows上使用CreateProcess,或者在Linux上使用spawn。
https://stackoverflow.com/questions/11298419
复制相似问题