2012-01-06 6 views
0

入ってくるMPEG2トランスポートストリームをデコードし、h264にエンコードする必要があります。 すべてはh264コーデックでうまく動作しますが、問題はlibavcodecがMPEG2-Transportstreamを認識していないようです。私は基本的に公式の例にアナログそれをやっている:avcodec_find_decoder(CODEC_ID_MPEG2TS)常にNULL

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

ptrCodec = avcodec_find_decoder(CODEC_ID_MPEG2TS); 

ptrCodecは常にNULLです。誰も私にこれを手伝ってもらえますか?

答えて

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にエンコードされた後、コンテナなしで生ファイルに書き込まれます。

+0

ありがとう、私はそれを見落とした。事後的には不必要な間違い – mmoment