0

我想解码传入的 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。有人可以帮我吗?

4

1 回答 1

2
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,然后在没有任何容器的情况下写入原始文件。

于 2012-01-06T22:31:32.813 回答