我想使用 ffmpeg 将 yuv 原始视频文件转换为 ts 流视频文件。所以我在我的代码中这样做:
avcodec_find_encoder(AV_CODEC_ID_MPEG2TS);
但是当我运行它时,它会发生:
[NULL @ 0x8832020] No codec provided to avcodec_open2()
我把“AV_CODEC_ID_MPEG2TS”改成“AV_CODEC_ID_MPEG2VIDEO”,效果很好,生成的mpg文件也运行良好。所以我想问为什么我不能使用“AV_CODEC_ID_MPEG2TS”?
最佳答案
我也在寻找使用 ffmpeg 流式传输文件,所以我不确定,但这是我所理解的......
Mpeg TS(Transport Stream)不是编解码器,它是一种封装方法,所以你必须用一些代码对流进行编码(我不确定你是否可以选择任何编解码器)然后你可以用 mpeg ts 封装它之前通过网络传输。
如果您不需要通过网络传输流,则可能不需要 mpeg ts。
我希望这会有所帮助......!
看这里:ffmpeg doxygen
关于ffmpeg - 我不能在 ffmpeg 中使用 AV_CODEC_ID_MPEG2TS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16899589/