使用ffmpeg库将.264转换为.ts

时间:2012-07-02 17:32:56

标签: c++ ffmpeg h.264 libav

我目前正致力于将h.264基本流(带有postfiix .264的文件)转换为传输流(带有postfix .ts的文件)​​。我已经使用ffmpeg命令行“ffmpeg -i in.264 -an -vcodec copy -f mpegts out.ts”成功完成了转换。

现在我想通过调用ffmpeg的库,使用我自己的C ++代码实现这种转换。我已经下载了预编译的ffmpeg库(libavcodec,libavformat等)。我的输入h.264是预先录制的文件,不是实时流,而是输出.ts文件。所以我的问题是我应该调用库中的哪些函数来实现转换?

3 个答案:

答案 0 :(得分:1)

在Linux中安装ffmpeg后,您将看到一个名为ffmpeg.c的示例文件。有许多选项可以在此文件中设置解码参数,例如opt_audio_codec,opt_video_codec,opt_audio_rate,opt_video_rate,opt_default等。在调用“transcode”或“av_encode”函数之前,只需使用适当的函数从命令中设置必要的参数(-i in.264 -an -vcodec copy -f mpegts out.ts)来自ffmpeg.c文件的“main”功能。

答案 1 :(得分:0)

它不像列出库调用那么简单。这是一个旧的tutorial,可以帮助您开始阅读输入文件。还有一个名为decoding_encoding.c的示例,它包含在ffmpeg源中。这些应该可以帮助您入门。

答案 2 :(得分:0)

您不需要在自己的代码中执行此操作。您可以以编程方式生成ffmpeg进程。在Windows上使用CreateProcess,在Linux上使用spawn