c++ - 使用 ffmpeg 库将 .264 转换为 .ts

标签 c++ ffmpeg h.264 libav

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

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

最佳答案

在 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”函数。

关于c++ - 使用 ffmpeg 库将 .264 转换为 .ts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11298419/

相关文章:

android - 从 iOS 应用调用时, native Web RTC 视频通话在 Android 上卡住

c++ - 如何在 FFmpeg 中指定容器格式?

c++ - 在 VC++ 2012 中初始化自动变量

c++ - 表达式 "b=(b-x)&x"是什么意思?

c++ - 关于如何部署 C++ 代码以在任何地方工作的提示

ffmpeg - 使用特殊配置编译和打包FFmpeg

android - 压缩视频后,在 Android 中的质量变得迟钝

c# - H264 -> 使用 .NET 的容器

c++ - 开始多线程代码之前的初始化

iOS多视频显示