我使用哪个 FFmpeg 命令将 FLV 转换为 MP4?

我使用哪个 FFmpeg 命令将 FLV 转换为 MP4?

我下载了一些 FLV 文件,想将它们转换为 MP4。它们已经是正确格式了,所以我被告知只需使用复制/传递功能将视频和音频流重新混合到 MP4 容器中即可。

我使用的是 64 位 Windows 7,并且已经将 FFmpeg 作为 get_iPlayer 的一部分。

我正在努力弄清楚这个命令行,可以吗?

是否也可以用同样的方式批量处理多个 FLV 文件?

答案1

它应该是这样的:

ffmpeg -i yourvideo.flv -codec copy output.mp4

您可以使用 FOR 命令循环遍历文件(它会沿着树递归):

FOR /R C:\dir\ %%F IN (*.flv) do ffmpeg -i "%%F" -codec copy "%~nF.mp4"

需要澄清的是,%~nF 仅返回姓名文件名的部分(不带扩展名)。

答案2

它们已经是正确的格式

.flv 视频是复杂的文件,可以包含多种类型的音频和视频。要检查 .flv 文件的音频和视频编解码器,您可以使用:

1.ffmpeg

ffmpeg -i video.flv

(对于你的情况)应该输出如下内容:

Input #0, flv, from 'video.flv':
  Duration: 00:05:01.20, start: 0.000000, bitrate: 66 kb/s
    Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 66 kb/s, 29.92 tbr, 1k tbn, 2k tbc 
    Stream #0.1: Audio: aac, 22050 Hz, stereo, s16

或者

2.VLC 的媒体信息窗口VLC 的媒体信息窗口,用于显示带有 AAC 和 H.264 的 flv 文件

此 .flv 文件包含 H.264 视频和 AAC 音频,它们恰好是 .mp4 容器的正确格式/编解码器。

以下是此类 .mp4 文件的结构:

包含 AAC 音频和 H.264 视频的 mp4 文件

*图片来源:使用 FFmpeg 将 FLV 转换为 MP4 终极指南

因此,在将 flv 转为 mp4 时,根据原始 .flv 文件中的编解码器,我们有 4 种情况:

1) 转换带有 H.264 视频和 AAC 音频的 .flv 文件

如果 .flv 文件中的音频和视频编解码器由 .mp4 容器 (AAC + H.264) 支持,那么您只需将流复制到 mp4 文件中而无需转码:

ffmpeg -i video.flv -codec copy video.mp4

这样的.flv 文件非常罕见。

该过程比解码和重新编码整个音频和视频数据要快得多。

2) 转换带有 H.264 视频和 Nellymoser/Speex 音频的 .flv 文件

如果一个或多个视频具有 H.264 视频和 Nellymoser ASAO/Speex 音频(在 .flv 文件中很常见),那么您需要复制视频(-codec 而不是 -codec) 并转码 (仅) 音频:

ffmpeg -i video.flv -vcodec copy video.mp4

3)使用 Spark/VP6 视频和 Nellymoser/Speex 音频转换 .flv 文件

如果 flv 的视频和音频数据未使用 .mp4 的正确编解码器进行编码(Spark 和 VP6 视频编解码器非常常见),那么您需要力量AAC 和 H.264:

ffmpeg -i video.flv video.mp4

4) 使用 Spark/VP6 视频和 AAC 音频转换 .flv 文件

很少会遇到带有 AAC 音频和视频(而非 H.264)的 .flv 文件,但为了以防万一,这里介绍了以最有效的方式将其转码为 .mp4 的方法(复制音频数据):

ffmpeg -i video.flv -acodec copy video.mp4

相关内容