我在 Windows 10 上使用 ffmpeg,我需要将所有文件转换为 mov

我在 Windows 10 上使用 ffmpeg,我需要将所有文件转换为 mov

例如,我可以使用此行来创建一个文件:

ffmpeg -i LostInTranslation.mp4 -vcodec copy -acodec copy LostInTranslation.mov

但我想转换桌面上的所有 mp4,因此我尝试了这一行:

for i in *mp4; do ffmpeg -i $i -vcodec copy -acodec copy $i.mov; done

我得到的只是i was unexpected at this time.当我使用 Mac 时,这两行代码对我来说都有效。现在在 Windows 10 上它就不起作用了,ffmpeg除了复制和粘贴这些代码之外我什么也不知道。任何帮助都将不胜感激。

答案1

您在 Windows 中使用 BASH,如果没有正确的设置,它将无法工作。

使用以下内容创建批处理文件:

for %%a in ("*.mp4") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~dpna.mov"

这应该会得到您想要的结果。

确保使用 ffmpeg 的直接路径,例如d:\ffmpeg\bin\ffmpeg.exe

例如,这些是我的encode.bat文件中的一些行:

REM for /R %%c in ("*.mkv") do D:\ffmpeg\bin\ffmpeg.exe -i "%%c" -c:v copy -c:a copy -flags +global_header "%%~dpnc.mp4" && del "%%c"
REM for /R %%d in ("*.mpg") do D:\ffmpeg\bin\ffmpeg.exe -i "%%d" -c:v hevc_nvenc -rc vbr -qmin 16 -qmax 60 -cq 32 -preset hq -profile:v main -pix_fmt yuv420p -flags +global_header -c:a aac -b:a 128k -ar 44100 -movflags +faststart "%%~dpnd.mkv"
REM for /R %%a in ("*.mp4") do D:\ffmpeg\bin\ffmpeg.exe -y -i "%%a" -c:v hevc_nvenc -r 24 -rc vbr -qmin 16 -qmax 60 -q:v 1 -cq 28 -preset hq -profile:v main -pix_fmt yuv420p -flags +global_header -c:a aac -b:a 128k -ar 44100 -movflags +faststart "%%~dpna.mkv" && del "%%a"
REM for /R %%b in ("*.avi") do D:\ffmpeg\bin\ffmpeg.exe -i "%%b" -c:v hevc_nvenc -rc vbr -qmin 16 -qmax 60 -cq 32 -preset hq -profile:v main -pix_fmt yuv420p -flags +global_header -c:a aac -b:a 128k -ar 44100 -movflags +faststart "%%~dpnb.mkv"
REM for /R %%a in ("*.mp4") do D:\ffmpeg\bin\ffmpeg.exe -y -i "%%a" -c:v hevc_nvenc -rc vbr -qmin 16 -qmax 60 -cq 28 -preset hq -profile:v main -pix_fmt yuv420p -flags +global_header -c:a aac -b:a 128k -ar 44100 -movflags +faststart "%%~dpna.mkv" && del "%%a"

我根据需要挑选想要使用的线路,然后进行调整。

请记住,是/R递归的,并且del "%%a"转换后会删除原始文件。 对此要非常小心。

答案2

您可以使用Kdenlive在 Ubuntu 中实现类似的结果。

点击File并选择Transcode Clips

将显示下面的对话框。

使用 GUI 进行转码

选择源文件和目标文件

选择您要使用的配置文件

点击Start

顺便说一句,我个人认为 kdenlive 采用深色主题看起来确实很漂亮。

相关内容