zzsczz 发表于 2022-8-5 19:24:55

win下批处理 脚本编写问题,如何批量处理文件?

如题

测试成功 脚本 ,功能 为 用ffmpeg 把 rm文件 转为mp4 (这个脚本使用cuda,速度40X以上@RT3070 ) ,一次 转一个。

ffmpeg -hwaccel cuvid   -i"[新版新概念英语1-4册全部视频和课本].Book3-01【wēi xìn 公众号:花临同学,baozangku。ys168。com】.rm"      -b 256k -vcodec h264_nvenc   -c:a aac -b:a 64k -ac 1 out_ac1.mp4

如何 把 当前目录下所有的 rm文件 都 转换成mp4?

cne53102 发表于 2022-8-5 20:31:20

试试这样?注意要在cmd里,不要在powershell里
for /F "tokens=*" %G in ('dir /b *.rm') do ffmpeg -hwaccel cuvid -n -i "%G" -b 256k -vcodec h264_nvenc-c:a aac -b:a 64k -ac 1 "output\%~nG.mp4"

我没有尝试楼主的转换参数,因为我没有rm文件

wye11083 发表于 2022-8-5 21:44:53

nvenc编码体积比cpu要大了不少,确实也要快不少。我都是用excel拉名字然后拷到记事本里粘贴,后来就写了个小程序去调ffmpeg。

zzsczz 发表于 2022-8-5 21:56:09

本帖最后由 zzsczz 于 2022-8-5 22:00 编辑

cne53102 发表于 2022-8-5 20:31
试试这样?注意要在cmd里,不要在powershell里
for /F "tokens=*" %G in ('dir /b *.rm') do ffmpeg -hwacc ...
(引用自2楼)


for /F "tokens=*" %G in ('dir /b *.rm') do ffmpeg -hwaccel cuvid -n -i "%G" -b 256k -vcodec h264_nvenc-c:a aac -b:a 64k -ac 1 "output\%~nG.mp4"


可以工作,需要 建立一个 output 目录即可

win11下 只能作为 命令行输入,但不能写入bat执行




非常感谢!

cne53102 发表于 2022-8-5 22:05:47

zzsczz 发表于 2022-8-5 21:56
for /F "tokens=*" %G in ('dir /b *.rm') do ffmpeg -hwaccel cuvid -n -i "%G" -b 256k -vcodec h264_ ...
(引用自4楼)

good,其实输出改成不一样的名字也可以不弄文件夹,但我想那样可能不太好

或者,也许可以添加一个if not exist什么什么然后mkdir之类的

放入批处理的话,那个百分号可能需要2个

zzsczz 发表于 2022-8-6 01:43:43

cne53102 发表于 2022-8-5 22:05
good,其实输出改成不一样的名字也可以不弄文件夹,但我想那样可能不太好

或者,也许可以添加一个if not ...
(引用自5楼)


这是个 把 1080ph.265 MP4 转720p h.264 mkv的 指令 ,复制音频流

PS4 PRO只支持 h.264

//单个文件
ffmpeg -hwaccel cuvid -c:v hevc_cuvid -i X档案.第一季.S01E15.mp4 -c:a copy -vf scale_cuda=1280:720 -c:v h264_nvenc -b:v 1M output.mkv


//批量转换
for /F "tokens=*" %G in ('dir /b *.mp4') do ffmpeg -hwaccel cuvid -c:v hevc_cuvid-i "%G" -c:a copy -vf scale_cuda=1280:720 -c:v h264_nvenc -b:v 1M "output\%~nG.mkv"



参考文献


https://zhuanlan.zhihu.com/p/162352065

https://ntown.at/de/knowledgebase/cuda-gpu-accelerated-h264-h265-hevc-video-encoding-with-ffmpeg/

zzsczz 发表于 2022-8-6 15:27:57

cne53102 发表于 2022-8-5 22:05
good,其实输出改成不一样的名字也可以不弄文件夹,但我想那样可能不太好

或者,也许可以添加一个if not ...
(引用自5楼)

的确

写入bat要把 指令里的% 替换成%%

btw您怎么 掌握 window的批处理语法的?这些bat 看上去 uggly&make no sense

cne53102 发表于 2022-8-6 15:57:27

zzsczz 发表于 2022-8-6 15:27
的确

写入bat要把 指令里的% 替换成%%
(引用自7楼)

我没仔细学过这东西,只是记得有的时候%可以有的时候%%才可以有的时候%%反而不可以……

很多时候我也是上网搜搜然后照葫芦画瓢,批处理的资源网上还挺多的,也有专门收集和鼓捣这玩意的站可以看看,但我觉得照葫芦画瓢基本满足需要的情况下没必要去硬啃这玩意。。

确实比较uggly,但它也不是给人看的,好看了性能会有影响,现在这样对命令行和命令行的程序来说已经可以了
页: [1]
查看完整版本: win下批处理 脚本编写问题,如何批量处理文件?