在 Linux CLI 上将常见视频格式转换为 FLV 的最佳工具是什么 [关闭]

StackOverflow https://stackoverflow.com/questions/97781

  •  01-07-2019
  •  | 
  •  

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

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

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

有帮助吗?

解决方案

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。

其他提示

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top