flv通过ffmpeg和x264重新编码到mp4 for iphone / ipod(质量问题)

时间:2011-08-18 18:15:30

标签: iphone ffmpeg video-encoding x264

关于这个主题有很多问题,我已经阅读了大部分内容以及我可以提出的大部分谷歌搜索结果。

当我使用FFMPEG将FLV转换为iphone3兼容的MP4文件时,它只是没有保留足够的质量。是的,我已经完成了-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. 修复我的拆分A / V处理/时间/持续时间问题?
  2. 改善 FLMP的质量与FLV转换为iphone3兼容 格式?

1 个答案:

答案 0 :(得分:1)

我建议尝试手刹(http://handbrake.fr/),我认为它可以编码flvs以及我曾经尝试过的几乎所有其他文件格式,而且我从来没有遇到任何质量问题。