我需要帮助重命名一些文件使用bat文件。我试着用cmd对视频进行批量编码,就像这样
\exe\x 264_ 32 _tMod- 10位-所有-级别5.1 -预置非常慢-crf 23.0 -min-keyint 12 -场景45 -b-适应2-参考文献10 -权重2-qcomp 0.6 -rc-展望前40 -直接自动-aq-模式3-aq-强度0.9 -混合32-我的umh -下10-格子2-psy- 0.40:0.60 -acodec无-无-stylish --输出.\temp\Output_v.mp4 .\Input\xxx.mp4 .\exe\ffmpeg -y -i .\Input\xxx.mp4 -f wav -| .\exe\neroAacEnc -ignorelength -q 0.4 -if - -of .\temp\Output_a.aac .\exe\ffmpeg -y -i .\Input\xxx.mp4 -i .\temp\Output_v.mp4 -map 1 -map_metadata 0 -c复制.\temp\newmetadatavideo.mp4 .\exe\ffmpeg -y -i .\temp\newmetadatavideo.mp4 -i .\temp\Output_a.aac -vcodec复制-acodec copy .\Output\yyy.mp4
在这里,输入文件是xxx.mp4,yyy.mp4是输出
我使用子文件夹来区分输入输出-exe文件和其他东西,所以它们实际上都不在一个文件夹中。像这样
谢谢!
使用此代码的输出文件大约要小2-5倍(至少对我来说是这样),但是由于我使用了10位和5.1级,所以并非所有玩家都能玩(没有尝试过)
发布于 2014-10-05 04:35:42
这段代码应该消除了重命名文件的需要。
更改第2行,以便显示正确的输入文件类型和FWIW在.\中不需要引用当前目录中的文件或文件夹。
首先在一些示例文件上测试它--命令行与您的代码相同,只更改了输入和输出项。
编辑:最后一个命令是".\Output\%%~na.mp4“而不是".\Output\%%~nxa"
,因此它将将所有最终输出文件保存为.mp4
@echo off
for %%a in ("input\*.mpg" "input\*.mkv" "input\*.avi") do (
.\exe\x264_32_tMod-10bit-all --level 5.1 --preset veryslow --crf 23.0 --min-keyint 12 --scenecut 45 --bframes 8 --b-adapt 2 --ref 10 --weightp 2 --qcomp 0.6 --rc-lookahead 40 --direct auto --aq-mode 3 --aq-strength 0.9 --merange 32 --me umh --subme 10 --trellis 2 --psy-rd 0.40:0.60 --acodec none --stylish --output ".\temp\Output_v_%%~nxa" ".\Input\%%~nxa"
.\exe\ffmpeg -y -i ".\Input\%%~nxa" -f wav -| .\exe\neroAacEnc -ignorelength -q 0.4 -if - -of ".\temp\Output_a_%%~nxa.aac"
.\exe\ffmpeg -y -i ".\Input\%%~nxa" -i ".\temp\Output_v_%%~nxa" -map 1 -map_metadata 0 -c copy ".\temp\new_%%~nxa"
.\exe\ffmpeg -y -i ".\temp\new_%%~nxa" -i ".\temp\Output_a_%%~nxa.aac" -vcodec copy -acodec copy ".\Output\%%~na.mp4"
)
pause如果临时文件正常的话,可以添加一些额外的代码来删除它。
发布于 2014-10-06 04:04:24
我已经编辑了一些代码
@echo off
for %%a in ("input\*.mpg" "input\*.mkv" "input\*.avi" "input\*.mov" "input\*.mp4" "input\*.m4v") do (
.\exe\x264_32_tMod-10bit-all --level 5.1 --preset veryslow --crf 23.0 --min-keyint 12 --scenecut 45 --bframes 8 --b-adapt 2 --ref 10 --weightp 2 --qcomp 0.6 --rc-lookahead 40 --direct auto --aq-mode 3 --aq-strength 0.9 --merange 32 --me umh --subme 10 --trellis 2 --psy-rd 0.40:0.60 --acodec none --stylish --output ".\temp\Output_v.mp4" ".\Input\%%~nxa"
.\exe\ffmpeg -y -i ".\Input\%%~nxa" -f wav -| .\exe\neroAacEnc -ignorelength -q 0.4 -if - -of ".\temp\Output_a.aac"
.\exe\ffmpeg -y -i ".\Input\%%~nxa" -i ".\temp\Output_v.mp4" -map 1 -map_metadata 0 -c copy ".\temp\meta_video.mp4"
.\exe\ffmpeg -y -i ".\temp\meta_video.mp4" -i ".\temp\Output_a.aac" -vcodec copy -acodec copy ".\Output\%%~na.mp4"
)
pause不需要删除临时文件,包括一些其他视频类型并自动生成MP4文件
它终于完成了,现在!
谢谢你帮我
https://stackoverflow.com/questions/26199165
复制相似问题