エンコードされたこのファイルはh264ですが、flvコンテナにあり、mp4、3gp、またはandroid MediaPlayerが理解できるファイル形式に入れる必要があります。
これをネイティブでやりたい。何もデコードもエンコードもしないので、多くの電力を浪費することはないと思います (間違っていますか?)
ここhttp://www.roman10.net/?p=394の指示に従い、ffmpeg を正常にコンパイルして使用し、mp4 および 3gp ファイルで使用することができました。
しかし、flv ファイルに関しては失敗します。Android用のffmpegの特定のポートには、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 メディア ファイルをフラッシュ プレーヤーに放り込むだけで、できあがりです。問題は、まだフラッシュを実行できない低速のデバイスを実行しているすべての人々には機能しないため、これは部分的な解決策になるということです。 .
ネルソン
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