我想解码传入的 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/