[Libav-user] Which codec/parser/filter I missed to open a MP4 file ?

hanguofu hanguofu at 163.com
Thu May 19 10:03:07 CEST 2016


I worked out my window application ( in the form of exe ) based on example remixing.c to concat a series of identical mp4 files. So far so good.


Since my project only caters to MP4 file with AAC and H.264 , I replace the original av_register_all() with the following functions to minimize the generated binary :


// this function is located in allcodecs.c
void  my_avcodec_register_all(void)
{
    static int initialized;
    if (initialized)
        return;
    initialized = 1;
   
   
      REGISTER_DECODER (H264, h264);
      REGISTER_ENCDEC  (MPEG4, mpeg4);
      REGISTER_ENCDEC  (AAC, aac);
      REGISTER_PARSER  (AAC, aac);
   REGISTER_PARSER  (H264, h264);
    
        REGISTER_PARSER(MPEG4VIDEO,         mpeg4video);
      REGISTER_BSF     (H264_MP4TOANNEXB, h264_mp4toannexb);
      REGISTER_BSF(MPEG4_UNPACK_BFRAMES,  mpeg4_unpack_bframes);
     
}


// this function is located in allformats.c
void my_av_register_all(void)
{
    static int initialized;
    if (initialized)
        return;
    initialized = 1;
 
        my_avcodec_register_all() ;        
      
      REGISTER_MUXER    (MP4, mp4);
       REGISTER_MUXDEMUX (H264, h264);
       REGISTER_DEMUXER  (AAC, aac) ;
    
      
      
       REGISTER_PROTOCOL (CONCAT, concat);
       REGISTER_PROTOCOL (FILE, file);
    REGISTER_PROTOCOL (CACHE, cache);
}


Unfortunately , the following avformat_open_input returns with an error message :
Invalid data found when processing input


Of course , if I use the original av_register_all()  then anything is fine. For your information , my targeted mp4 files have the following av_dump_format :



[h264 @ 01C37000] Warning: not compiled with thread support, using thread emulation
[aac @ 01C2E2E0] Warning: not compiled with thread support, using thread emulation
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'h264_aac.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.45.100
  Duration: 00:01:00.04, start: 0.036281, bitrate: 1005 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720,
 865 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler




Is there sth. I missed when I modified the function ?


Regards !


Guofu Hang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20160519/0522a75d/attachment.html>


More information about the Libav-user mailing list