FLV перекодирует в mp4 для iphone/ipod через ffmpeg и x264 (проблема с качеством)

Есть много вопросов по этой теме, и я прочитал большинство из них и большинство результатов поиска Google, которые смог найти.

Когда я использую FFMPEG для преобразования FLV в файл MP4, совместимый с iphone3, он просто не обеспечивает достаточного качества. Да, я чертовски работал над настройками -sameq, -b и -bt, текст просто не читается.

Затем я попытался разделить видео и обработать его напрямую, используя следующие инструкции: https://sites.google.com/site/linuxencoding/x264-encoding-guide

Проблема в том, что myplayer (через ffmpeg) не смог определить продолжительность FLV (хотя метаданные были установлены).

(Я предполагаю) Из-за этой неизвестной продолжительности, когда я создаю файл MP4, полученный файл x264 воспроизводится сверхбыстро, а звук воспроизводится с нормальной скоростью.

user@server:/tmp# mplayer -nosound -benchmark -sws 9 -vf dsize=640:480:0,scale=0:0,expand=640:480 -vo yuv4mpeg:file=>(x264 --demuxer y4m --crf 0 --preset slow --threads auto --output output.264 - 2>x264.log) 'input.flv'
MPlayer 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing input.flv.
libavformat file format detected.
[flv @ 0x1202460]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (vp6f), -vid 0
[lavf] stream 1: audio (nellymoser), -aid 0
VIDEO:  [VP6F]  1680x992  0bpp  1000.000 fps   33.4 kbps ( 4.1 kbyte/s)
Clip info:
 audiocodecid: 6
 audiodatarate: 86
 audiosamplerate: 44100
 audiosamplesize: 16
 audiosize: 6097005
 canSeekToEnd: true
 datasize: 8609138
 duration: 567
 framerate: 2
 hasAudio: true
 hasCuePoints: false
 hasKeyframes: true
 hasMetadata: true
 hasVideo: true
 height: 992
 lasttimestamp: 567
 metadatacreator: flvtool++ (Facebook, Motion project, dweatherford)
 stereo: false
 totalframes: 1043
 videocodecid: 4
 videodatarate: 33
 videosize: 2316256
 width: 1680
Using (default) progressive frame mode.Opening video filter: [expand w=640 h=480]
Expand: 640 x 480, -1 ; -1, osd: 0, aspect: 0.000000, round: 1
Opening video filter: [scale w=0 h=0]
Opening video filter: [dsize=640:480:0]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffvp6f] vfm: ffmpeg (FFmpeg VP6 Flash)
==========================================================================
Audio: no sound
Starting playback...
Movie-Aspect is undefined - no prescaling applied.
[swscaler @ 0x7f0c738b9620]Lanczos scaler, from yuv420p to yuv420p using MMX2
VO: [yuv4mpeg] 640x480 => 641x480 Planar YV12

Я также пытался указать FPS, но результаты не изменились.

user@server:/tmp# mplayer -nosound -fps 25-benchmark -sws 9 -vf dsize=640:480:0,scale=0:0,expand=640:480 -vo yuv4mpeg:file=>(x264 --demuxer y4m --fps 25 --crf 0 --preset slow --threads auto --output output.264 - 2>x264.log) 'input.flv'

Может ли кто-нибудь сказать мне, как:

  1. исправить мои проблемы с раздельной обработкой/временем/длительностью аудио/видео?
  2. улучшить качество преобразования FFMPEG FLV в формат, совместимый с iphone3?

person zeroasterisk    schedule 18.08.2011    source источник


Ответы (1)


Я бы предложил попробовать handbreak (http://handbrake.fr/), я думаю, что он может кодировать FLV так же, как почти любой другой формат файлов, который я когда-либо пробовал, и у меня никогда не было проблем с качеством.

person Trcx    schedule 18.08.2011