例如,我可以使用此行来创建一个文件:
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
将显示下面的对话框。
选择源文件和目标文件
选择您要使用的配置文件
点击Start
顺便说一句,我个人认为 kdenlive 采用深色主题看起来确实很漂亮。