avcodec_find_decoder (CODEC_ID_MPEG2TS) всегда NULL - PullRequest
0 голосов
/ 07 января 2012

Я хочу декодировать входящий 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.Кто-нибудь может мне помочь с этим?

1 Ответ

2 голосов
/ 07 января 2012
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, а затем записывается в необработанный файл без каких-либо контейнеров.

...