2008-09-18 63 views
11

我已分配到一个新产品的部分工作涉及服务器端将'通用'视频格式转换为Flash可以播放的内容。什么是在Linux CLI上将常见视频格式转换为FLV的最佳工具

据我所知,我唯一的选择是转换为FLV。我一直在给ffmpeg转个圈,但是我发现有几个WMV文件出现乱码声音(我尝试使用音频格式播放)。

是否有任何其他'好'CLI转换器的Linux?或者还有Flash可以播放的其他视频格式?

回答

15

Flash可以播放的格式如下:

FLV with AAC or MP3 audio, and FLV1 (Sorenson Spark H.263), VP6, or H.264 video. 
MP4 with AAC or MP3 audio, and H.264 video (mp4s must be hinted with qt-faststart or mp4box). 

的ffmpeg是一个整体的良好转换工具; mencoder可以使用模糊和专有的格式(由于w32codecs二进制解码器包)而更好地工作,但其混合是相当不理想的(阅读:通常完全破碎)。一种解决方案可能是通过mencoder将H.264编码为x264,然后使用mp4box单独复合。

作为x264(以及Flash在线视频播放的狂热用户)的开发人员,我在这方面有过相当多的经验,所以如果您需要更多帮助,我也可以在Freenode IRC在#x264,#ffmpeg和#mplayer上。

2

大多数编码器,默认情况下(包括ffmpeg)会将mp4的头部原子(“moov atom”)放在视频的末尾,因为它们在完成编码之前无法放置标头。但是,为了使文件在完成下载之前开始播放,必须将moov原子移动到最前面。

要做到这一点,你必须使用mp4box(默认使用mp4box)或使用qt-faststart(用于ffmpeg的脚本)来简单地将原子移动到前面。它非常简单。

请注意,对于FLV,默认情况下,ffmpeg将使用FLV1视频格式,这非常可怕;在这一点上它已经有十多年的历史了,而且鉴于现代标准,它的效率相当糟糕。使用H.264等更现代的格式会更好。

+0

把原子放在末端有什么好处? – 2010-09-02 15:30:21

相关问题