平时都是用ffmpeg命令生成ts文件,但对ffmpeg编码不怎么熟悉,所以想问问有没有关于FFmpeg将H264封装成Mpeg-ts 的示例代码或者相关文章呢
直接用 ffmpeg 的 h264 解复用器来读取 h264 数据,拿到 AVPacket,然后丢给 ts 的muxer复用器封装起来。 可以参考一下下面这篇文章 《FFmpeg写入输出文件》 https://ffmpeg.xianwaizhiyin.net/api-ffmpeg/output.html 这篇文章讲了muxer复用器封装的函数流程,但是也讲了解码的,你不需要解码。
整个实现的流程其实跟下面这条命令类似。 ffmpeg.exe -j input.h264 -c copy output-ts.mp4 你看一下 ffmpeg.c 怎么实现上面这条命令的。跟我上面说的函数流程差不多。
上面那个示例是封装 mp4 的,你换一下输出文件名,换成 ts 就行。但是《FFmpeg写入输出文件》文章里面的示例其实没有什么鲁棒性的,只是介绍一下函数流程,能跑起来。 一些特殊情况没处理。 我一般能直接用 ffmpeg.c 都是直接基于 ffmpeg.c 来改,或者直接把 ffmpeg.c 引入项目。 直接用 ffmpeg.c 很稳。
我收藏一下这个问题,改天写个示例。
@"loken" 谢谢👍👍