ffmpeg - avcodec_find_decoder(CODEC_ID_MPEG2TS) 始终为 NULL

标签 ffmpeg libavcodec libavformat libav

我想解码传入的 MPEG2 传输流,然后将其编码为 h264。
h264 编解码器一切正常,但问题是 libavcodec 似乎无法识别 MPEG2-Transportstream。我基本上是在模仿官方的例子:

http://ffmpeg.org/doxygen/trunk/decoding__encoding_8c-source.html

ptrCodec = avcodec_find_decoder(CODEC_ID_MPEG2TS);

ptrCodec 始终为 NULL。有人可以帮我吗?

最佳答案

CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS
                            * stream (only used by libavformat) */
CODEC_ID_MPEG2TS仅供内部使用。

我认为您混淆了编解码器和文件格式/容器。 libavcodec可以将您的视频编码为 h264、mpeg2video 或 mpeg4。如果您想将此视频放在 avi、mpeg 或 mpeg-ts 文件中,您应该使用 libavformat .

你应该寻找一个不同的例子。在这一视频中,视频被编码为 h264,然后在没有任何容器的情况下写入原始文件。

关于ffmpeg - avcodec_find_decoder(CODEC_ID_MPEG2TS) 始终为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8765166/

相关文章:

Android 内置相机编码器 VS FFMPEG --- 速度

ffmpeg - 错误 : undefined reference to `x264_encoder_open_155'

c++ - FFMPEG缩放错误-无效维度

c++ - FFMPEG:多路复用不同持续时间的流

ruby-on-rails - 使用回形针ffmpeg播放视频

ffmpeg - 如何将视频分割成单独的编码帧?

ffmpeg - 来自 MPEG4 流的运动矢量和 DC 系数

image - AVFrame 到 RGB - 解码伪影

ffmpeg - 你如何在 libavformat 中设置 muxer 选项?

ffmpeg h264流解码伪影