我需要把这个编码在h264中的文件放在flv容器中,然后把它放在mp4,3gp或者android MediaPlayer可以理解的任何文件格式中。
我想原生这样做。因为我不会解码或编码任何东西,我想我不会浪费很多力量(我错了吗?)
我按照http://www.roman10.net/?p=394的说明操作,可以成功编译并使用ffmpeg并将其与mp4和3gp文件一起使用。
但是当谈到flv文件时,它失败了。据我所知,ffmpeg for android的特定端口没有flv文件的格式定义。
例如,没有libavformat / flv.h头文件。
也许这就是为什么这样做的原因:
extern AVInputFormat ff_mov_demuxer;
av_register_input_format(安培; ff_mov_demuxer);
虽然失败了:
extern AVInputFormat ff_flv_demuxer; av_register_input_format(&ff_flv_demuxer);
问题是,隧道尽头有灯吗?有人做过类似的事吗?它有用吗?我的意思是,我总是可以把flv媒体文件放到一个flash播放器中瞧..这就是这将是一个特殊的解决方案,因为它不适用于所有运行速度较慢的设备但尚未运行Flash的人
纳尔逊
PS。以防万一。以下是我正在谈论的文件的一些信息:
ffmpeg -i rio.flv
ffmpeg version N-32624-gea8de10, Copyright (c) 2000-2011 the FFmpeg developers
built on Sep 15 2011 23:31:42 with gcc 4.5.2
configuration: --enable-libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable-libx264 --enable-libxvid --enable-gpl --enable-nonfree
libavutil 51. 16. 0 / 51. 16. 0
libavcodec 53. 15. 0 / 53. 15. 0
libavformat 53. 12. 0 / 53. 12. 0
libavdevice 53. 3. 0 / 53. 3. 0
libavfilter 2. 42. 0 / 2. 42. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 14.99 (15000/1001)
Input #0, flv, from 'rio.flv':
Duration: 00:01:00.06, start: 0.000000, bitrate: 783 kb/s
Stream #0.0: Video: h264 (Main), yuv420p, 704x480 [SAR 10:11 DAR 4:3], 14.99 tbr, 1k tbn, 2k tbc