I was right, I was missing options so I add the following to the init phase
opts = setup_find_stream_info_opts(iformatCtx, codec_opts); err = avformat_find_stream_info(iformatCtx,opts); instead of just err = avformat_find_stream_info(iformatCtx,NULL) And then avformat_write_header(outputFormatCtx,opts) That fixed my AAC output, it's now identical to ffmpeg's but it broke MP3... I get the following error [mp3 @ 0x7f9c73060c00] Invalid audio stream. Exactly one MP3 audio stream is required. failed to write header: Invalid argument Almost there ;) On 23 November 2012 18:21, Atli Thorbjornsson <[email protected]> wrote: > I am trying to use ffmpeg in Android as a demuxer for FLV contained audio. > > As a proof of concept I wrote a barebones demuxer->muxer in C that > essentially tries to mimic this ffmpeg command > > ffmpeg -i input.flv -acodec copy output.aac > > The output of ffmpeg obviously works perfectly. But my program's output > differs by a few bytes, I think it's the ADTS header or something. > My program can also do FLV contained MP3 and even though my program's > output still differs by a few bytes, my output is playable. > > Only too happy to share the entire source if someone has the time to wade > through it but the basic functionality is like so: > > init a whole lot of stuff > ... > avformat_write_header(outputFormatCtx,NULL); > while(av_read_frame(inputFormatCtx, &inputPacket)) > if(inputPacket.stream_index == audioStreamIndex) > av_interleaved_write_frame(outputFormatCtx, inputPacket) > av_write_trailer(outputFormatCtx); > > > I've been wading through ffmpeg.c to try and figure out what I'm missing > but no luck as of yet. > I'm guessing I should add some options to avformat_write_header instead of > NULL but I haven't been able to figure out what. > > Many thanks, > Atli. >
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
