小智 7
它应该是这样的:
ffmpeg -i yourvideo.flv -codec copy output.mp4
Run Code Online (Sandbox Code Playgroud)
您可以使用 FOR 命令来遍历文件(它会在您的树中递归):
FOR /R C:\dir\ %%F IN (*.flv) do ffmpeg -i "%%F" -codec copy "%~nF.mp4"
Run Code Online (Sandbox Code Playgroud)
只是为了澄清, %~nF 仅返回文件名的名称部分(不带扩展名)。
它们已经是正确的格式
.flv 视频是复杂的文件,可以包含多种类型的音频和视频。要检查 .flv 文件的音频和视频编解码器,您可以使用:
1. ffmpeg的
ffmpeg -i video.flv
Run Code Online (Sandbox Code Playgroud)
其中(在您的情况下)应该输出以下内容:
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
Run Code Online (Sandbox Code Playgroud)
或者
这个 .flv 文件包含 H.264 视频和 AAC 音频,这恰好是 .mp4 容器的正确格式/编解码器。
这是这样一个 .mp4 文件的结构:
*图片由使用 FFmpeg 将 FLV 转换为 MP4 提供终极指南
所以在将 flv 转码为 mp4 时,根据原始 .flv 文件中的编解码器,我们有 4 种情况:
如果 .flv 文件中的音频和视频编解码器受 .mp4 容器 (AAC + H.264) 支持,那么您只需将流复制到 mp4 文件中,无需转码:
ffmpeg -i video.flv -codec copy video.mp4
Run Code Online (Sandbox Code Playgroud)
此类 .flv 文件非常罕见。
这个过程比解码和重新编码整个音频和视频数据要快得多。
如果一个或多个视频具有 H.264 视频和 Nellymoser ASAO/Speex 音频(在 .flv 文件中很常见),那么您需要复制视频(-v编解码器而不是 -codec)并转码(仅)音频:
ffmpeg -i video.flv -vcodec copy video.mp4
Run Code Online (Sandbox Code Playgroud)
如果 flv 的视频和音频数据没有使用正确的 .mp4 编解码器进行编码(Spark 和 VP6 视频编解码器非常常见),那么您需要同时强制使用 AAC 和 H.264:
ffmpeg -i video.flv video.mp4
Run Code Online (Sandbox Code Playgroud)
遇到带有 AAC 音频和视频而不是 H.264 的 .flv 文件的情况很少见,但为了以防万一,这里是如何以最有效的方式将其转码为 .mp4(复制音频数据):
ffmpeg -i video.flv -acodec copy video.mp4
Run Code Online (Sandbox Code Playgroud)