11

我被指派从事的新产品的一部分涉及将“常见”视频格式在服务器端转换为 Flash 可以播放的格式。

据我所知,我唯一的选择是转换为 FLV。我一直在尝试使用 ffmpeg,但我发现一些 WMV 文件出现乱码(我尝试过播放音频速率)。

是否还有其他适用于 Linux 的“好”CLI 转换器?或者还有其他 Flash 可以播放的视频格式吗?

4

2 回答 2

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 使用 x264 对 H.264 进行编码,然后使用 mp4box 单独进行多路复用。

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

于 2008-09-18T22:50:17.013 回答
2

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

为此,您必须使用 mp4box(默认情况下执行此操作)(重新)复用或使用 qt-faststart,这是一个用于 ffmpeg 的脚本,它只是将原子移动到前面。它很简单。

请注意,对于 FLV,默认情况下,ffmpeg 将使用 FLV1 视频格式,这非常糟糕;到目前为止,它已有十多年的历史了,考虑到现代标准,它的效率相当糟糕。您最好使用更现代的格式,如 H.264。

于 2008-09-18T23:02:28.153 回答