请教批处理编写问题,大佬请进。

130 天前
 mfsw

ffmpeg -display_rotation:v:0 90 -i input.mp4 -c copy output.mp4

以上代码可以把 mp4 视频旋转 90 度后生成一个新的视频。

我现在想把这个代码转换成批处理文件。

首先,批处理提供一个输入选项,让我可以输入要处理的 mp4 文件所在的文件夹路径。

其次,批处理开始旋转文件夹中的所有视频,删除原始 mp4 文件,把旋转后的 mp4 文件,命名为旋转之前的文件名。

感谢大佬援手。刚问了 gpt3.5 跟 google 双子星,都没得到正确答案。

1425 次点击
所在节点    Windows
12 条回复
mfsw
130 天前
补充下,我希望批处理中调用的 ffmpeg 所在的路径是 C:\ffmpeg\ffmpeg.exe
defunct9
130 天前
写个 python
ltyj2003
130 天前
https://blog.csdn.net/McdullGemini/article/details/104256559
参考这个写批量转换
整体流程
源文件夹 转换 存入新文件夹
源文件夹删除
新文件夹改名为原文件夹
ltyj2003
130 天前
针对一楼问题,两个方法
1 、命令行里面把 ffmpeg 写为绝对路径即可
2 、系统设置里添加环境变量
jasonyang9
130 天前
照一个之前写的批处理魔改的,参考下

SET FFMPEG=C:\ffmpeg\ffmpeg.exe
SET FFPARAM=-display_rotation:v:0 90 -c copy
SET SRCPATH=???
SET SRCEXT=*.mp4
SET DSTEXT=*.new.mp4

FOR /R "%SRCPATH%" %%F IN (%SRCEXT%) DO (
SET "infile=%%~fF"
SET "outfile=%%~fF"
SETLOCAL enableDelayedExpansion
"%FFMPEG%" %FFPARAM% "!infile!" "!outfile!"
ENDLOCAL
)

SRCPATH 是 Hard-coded ,你要传参进去另写
没有覆盖原始 MP4 的逻辑,你自己写

成品后希望 LZ 能共享出来

哈哈
e2k
130 天前
@echo off
chcp 65001
setlocal enabledelayedexpansion

set /p folderPath=请输入要处理的文件夹路径:

set "ffmpegPath=C:\ffmpeg\ffmpeg.exe"

for %%F in ("%folderPath%\*.mp4") do (
echo 正在处理文件:"%%~nfF"
"%ffmpegPath%" -display_rotation:v:0 90 -i "%%F" -c copy "%%~dpnF_rotated.mp4"

echo 处理命令:"%ffmpegPath%" -display_rotation:v:0 90 -i "%%F" -c copy "%%~dpnF_rotated.mp4"
if exist "%%~dpnF_rotated.mp4" (
del "%%F"
ren "%%~dpnF_rotated.mp4" "%%~nxF"
echo 文件处理完成:"%%~nxF"
) else (
echo 无法旋转文件:"%%~nxF"
)
)

endlocal

pause
SuperXX
130 天前
用 Python glob 和 subprocess 运行你的命令就行了
Tsccai
130 天前
这还不简单。
第一步,把 ffmpeg 添加到环境变量,这样你在任意目录下都可以调用。
第二步,写个批处理,遍历*.mp4 ,逐一转码写入目标目录,再删除原文件,把这个批处理放进你的视频目录即可。

至于如何用批处理遍历文件和字符串操作来生成新的文件名,建议直接百度。最后要提醒的是不要在一开始就使能删除原文件的代码,否则很可能出现你这边还在调试呢,那边批处理直接把你原文件干掉了。
janus77
130 天前
这种就真可以问 GPT 了,我也确实用 GPT 帮我写了好几个脚本
XxxxD
130 天前
python 有个库是 subprocess, 引用命令行,写个小脚本批量处理
mfsw
129 天前
@e2k 感谢大佬,完美运行,太高效了。人真的比 ai 靠谱。
感谢其他帮忙出主意的大佬。结贴。
PrinceofInj
129 天前
这个 GPT 绝对可以搞定,我之所以这么肯定是因为前不久望让 GPT 给我写了一个几乎一样功能的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1004738

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX