Измените формат файла с flv на любой, который будет воспроизводиться Android

#android #ffmpeg #flv #playback #libavformat

#Android #ffmpeg #flv #воспроизведение #libavformat

Вопрос:

Мне нужно взять этот файл, который закодирован в формате h264, но в контейнере flv, и просто поместить его в формат mp4, 3gp или любой другой формат файла, который поймет медиаплеер Android.

Я хочу сделать это изначально. Поскольку я не буду ничего декодировать или кодировать, я думаю, что не буду тратить много энергии (я ошибаюсь?)

Я следовал инструкциям отсюда http://www.roman10.net/?p=394 и мог бы успешно скомпилировать и использовать ffmpeg и использовать его с файлами mp4 и 3gp.

Но когда дело доходит до файлов flv, он терпит неудачу. Я понимаю, что в этом конкретном порту ffmpeg для Android нет определения формата для файлов flv.

Например, нет файла заголовка libavformat / flv.h.

Может быть, именно поэтому это работает:

внешний AVInputFormat ff_mov_demuxer;
av_register_input_format(amp;ff_mov_demuxer);

Пока это не удается:

 extern AVInputFormat ff_flv_demuxer;
av_register_input_format(amp;ff_flv_demuxer);
  

Вопрос в том, есть ли свет в конце туннеля? кто-нибудь делал что-то подобное? полезно ли это? Я имею в виду, я всегда могу просто вставить медиафайл flv во флэш-плеер и вуаля.. дело в том, что это было бы частным решением, поскольку оно не будет работать для всех тех людей, которые используют более медленные устройства, которые еще не могут запускать 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