2012-01-06 2 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