存档

文章标签 ‘iPod’

生成兼容 iPhone 和 PSP 的视频

2009年6月17日 dipplum 没有评论

iPhone 和 PSP 都支持播放 MP4 格式的视频。MP4 基于 Apple 的 QuickTime MOV 视频格式标准,是目前支持度最高的一种视频格式,多数的手机和移动设备,在播放 MP4 视频的时候都具有硬件优化。

但 iPhone 和 PSP 支持的视频要求略有不同。在视频转换的时候,如果不加以注意,生成的视频往往只能在一种设备上播放。

这给同时具有PSP、iPod Touch 和 PC 机的我带来很大的视频管理难题:同样一部影片,需要下载、保存三份:PSP、iPhone,再加上 PC。不但浪费空间,浪费下载带宽和时间,而且考虑到现在 MP4 视频的下载没有像 HDTV、DVDRip 那样成熟的下载渠道,更是加剧了这方面的困难。

如果可以生成 MP4 视频,使得 PSP,iPhone/iPod Touch,还有电脑(显然)都可以播放,就可以一举解决这个问题。

为了完成上述目标,我用 ffmpeg 写了一个转换脚本(用文件名替换%1)。生成的 MP4 文件属性如下

  • 分辨率:480×272。这是 PSP 和 iPhone 都能播放的最高分辨率。(其实两种设备都支持 640×480 分辨率,但该分辨率下,无法保证 PSP 和 iPhone 都兼容)
  • 视频编码:420kbps H.264。
  • 音频编码:16位双声道,64kbps
  • PSP 兼容参数:refs=2 (PSP 最多支持两个参考帧)
  • iPhone 兼容参数:coder=0 bf=0 flags2=-wpred-dct8×8 (iPhone 不支持熵编码,不支持 B 帧)
ffmpeg -i %1 -r 25 -threads 2 -s 480x272 -y -vcodec libx264 -an -pass 1  -flags +loop -cmp +chroma -partitions -parti8x8-parti4x4-partp8x8-partp4x4-partb8x8 -me_method dia -subq 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -directpred auto -trellis 0 -level 21 -coder 0 -bf 0 -flags2 -wpred-dct8x8 -refs 2 -b 420k -bt 420k -ab 64k -ar 48000 -ac 2 -f mp4 pass1.tmp
 
ffmpeg -i %1 -r 25 -threads 2 -s 480x272 -y -vcodec libx264 -acodec libfaac -pass 2 -flags +loop -cmp +chroma -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method umh -subq 8 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 2 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -directpred 3 -trellis 1 -level 21 -coder 0 -bf 0 -flags2 -wpred-dct8x8 -refs 2 -b 420k -bt 420k -ab 64k -ar 48000 -ac 2 -f mp4 %1.mp4
分类: 开源软件 标签: , , , ,
This work by dipplum is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 China Mainland.