0

我目前正在将 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 文件也是如此。所以我的问题是我应该调用库中的哪些函数来实现转换?

4

3 回答 3

1

在 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-03T11:11:46.037 回答
0

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

于 2012-07-02T18:27:12.997 回答
0

您无需在自己的代码中执行此操作。您可以改为以编程方式生成 ffmpeg 进程。CreateProcess在 Windows 或spawnLinux 上使用。

于 2012-07-03T06:58:01.743 回答