3

我使用以下命令将视频从 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。

谢谢

4

2 回答 2

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

我无法证明这正是您所需要的,但这应该足够接近。

于 2012-05-29T14:47:51.783 回答
3

转换 m4v -> mp4 没有意义。m4v 只是 mp4 的另一个扩展。

Mp4 不是视频格式,而是音频/视频/字幕/元数据的包装器。在我看来,问题来自个人资料。根据 iPhone 的世代,并非所有 h264 配置文件都受支持。

尝试添加-coder 0到您的命令中,它应该可以工作。

我想你从这里得到你的命令,我注意到还有另一个命令应该做你想做的事:

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-pass encoding :

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

编码过程较长,但值得花时间!

最后一件事,而不是直接使用 ffmpeg,我更喜欢使用 Mencoder,它是 ffmpeg 的包装器(更多编解码器支持)。Mencoder 的一个不错的 GUI 应该是 Windows 的 MeGUI,它确实使编码过程更容易!

于 2012-06-02T21:04:44.620 回答