我使用下面的命令将视频从FLV,M4V转换为MP4。
ffmpeg -y -i video_1336406262.flv -vcodec libx264 -vpre slow -vpre ipod640 -b 250k -bt 50k -acodec libfaac -ac 2 -ar 48000 -ab 64k -s 480x320 video_1336406262.mp4
从M4V转换为MP4的视频在iPhone和iPod上播放得非常好,但从FLV转换为MP4的视频在iPod中不起作用,但在iPhone中起作用。
在HTML5页面的视频区域,iPod甚至不显示播放符号。
有人可以帮忙吗?
我使用相同的命令将FLV和M4V转换为MP4。
谢谢
答案 0 :(得分:5)
我建议使用HandBrakeCLI将视频转换为MP4。
Handbrake有一些内置预设,可以实现精确的兼容性目标,请参阅https://trac.handbrake.fr/wiki/BuiltInPresets
内置ipod预设与您需要的格式有一些差异,因此您的调用可以通过以下方式转换为handrake调用:
HandBrakeCLI -i video_1336406262.flv -e x264 -a 1 -E faac -6 dpl2 -R Auto -D 0.0 -f mp4 -I -m -x level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subme=6:8x8dct=0:trellis=0 -b 250 -B 64 -R 48 -X 480 -w 480 -l 320 -2 -o video_1336406262.mp4
我无法证明这正是您所需要的,但这应该足够接近。
答案 1 :(得分:3)
转换m4v - > mp4毫无意义。 m4v只是mp4的另一个扩展。
Mp4不是视频格式,而是音频/视频/字幕/元数据的包装。 在我看来,问题来自个人资料。根据iPhone的生成情况,并非所有h264配置文件都受支持。
尝试将-coder 0
添加到您的命令中,它应该可以正常工作。
我认为你从here得到你的命令,我注意到还有另一个命令应该做你想做的事情:
iPod-iPhone 640 width, without presset :
ffmpeg -i INPUT -s 640x480 -r 30000/1001 -b 200k -bt 240k -vcodec libx264 coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -maxrate 10M -bufsize 10M-acodec libfaac -ac 2 -ar 48000 -ab 192k output.mp4
根据我的经验,如果你想要一个好的质量/尺寸比,你应该更喜欢2遍编码:
ffmpeg -y -i input -r 30000/1001 -s 480x272 -aspect 480:272 -vcodec libx264 -b 512k -bt 1024k -maxrate 4M -flags +loop -cmp +chroma -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq "blurCplx^(1-qComp)" -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -coder 0 -refs 1 -bufsize 4M -level 21 -partitions parti4x4+partp8x8+partb8x8 -subq 5 -f mp4 -pass 1 -an -title "Title" output.mp4
编码过程较长但值得花时间!
最后一点,我更喜欢使用Mencoder,而不是直接使用ffmpeg,它是ffmpeg的包装器(更多编解码器支持)。 Mencoder的一个不错的GUI应该是Windows的MeGUI,它确实使编码过程更容易!