Batcher 发表于 2023-11-20 22:53

BAT+ffmpeg实现视频横屏和竖屏互相转换

【功能描述】

批量把横屏视频文件转换为竖屏。
批量把竖屏视频文件转换为横屏。
支持子文件夹下也有视频文件需要处理的情况。

【下载地址】

百度网盘: https://pan.baidu.com/s/1OsjCtKmvtIcfem5Kxda9VA 密码:52PJ
蓝奏网盘: https://batcher.lanzouj.com/iwXCr1fgdedi 密码:52PJ

【使用方法】

下载,解压缩,把这三个文件:

[*]ffmpeg.exe
[*]VideoRotateH2V.bat
[*]VideoRotateV2H.bat

放在 C:\Test 文件夹下。

原始竖屏视频文件放在 C:\Test\竖屏 文件夹下。
双击执行脚本 VideoRotateH2V.bat 可以把竖屏视频批量转换为横屏视频。

原始横屏视频文件放在 C:\Test\横屏 文件夹下。
双击执行脚本 VideoRotateV2H.bat 可以把横屏视频批量转换为竖屏视频。

【效果截图】

执行之前:


执行过程:



执行之后:


【完整代码】

VideoRotateH2V.bat
@echo off
REM 设置原始竖屏视频所在的文件夹路径
set "OldH=C:\Test\竖屏"
REM 根据实际需要修改待处理的视频扩展名列表
set ExtList=*.mp4 *.wav

cd /d "%~dp0"
set "NewH2V=竖转横"
md "%NewH2V%" 2>nul

pushd "%OldH%"
for /f "delims=" %%i in ('dir /b /s /a-d %ExtList%') do (
    set "OldFile=%%i"
    set "NewFile=%%~nxi"
    set "OldFolder=%%~dpi"
    setlocal enabledelayedexpansion
    set "NewFolder=%~dp0%NewH2V%!OldFolder:%OldH%=!"
    md "!NewFolder!" 2>nul
    "%~dp0ffmpeg.exe" -i "!OldFile!" -vf "transpose=1" -c:a copy "!NewFolder!!NewFile!"
    endlocal
)
popd
pause

VideoRotateV2H.bat
@echo off
REM 设置原始横屏视频所在的文件夹路径
set "OldV=C:\Test\横屏"
REM 根据实际需要修改待处理的视频扩展名列表
set ExtList=*.mp4 *.wav *.avi

cd /d "%~dp0"
set "NewV2H=横转竖"
md "%NewV2H%" 2>nul

pushd "%OldV%"
for /f "delims=" %%i in ('dir /b /s /a-d %ExtList%') do (
    set "OldFile=%%i"
    set "NewFile=%%~nxi"
    set "OldFolder=%%~dpi"
    setlocal enabledelayedexpansion
    set "NewFolder=%~dp0%NewV2H%!OldFolder:%OldV%=!"
    md "!NewFolder!" 2>nul
    "%~dp0ffmpeg.exe" -i "!OldFile!" -vf "transpose=1" -c:a copy "!NewFolder!!NewFile!"
    endlocal
)
popd
pause

goblack 发表于 2023-11-21 00:24

用-c:a copy参数,意味着没有重编码,就是简单的直接旋转,速度基本上就取决于硬盘读取速度。
类似照片图片旋转保存,记录照片方向信息。

但是,这种操作方式出来的视频,部分软件有兼容性问题的。虽然很罕见,所以可以认为是软件本身问题不支持。

HuaGdao1 发表于 2023-11-26 09:03

本帖最后由 HuaGdao1 于 2023-11-26 09:06 编辑

goblack 发表于 2023-11-21 00:24
用-c:a copy参数,意味着没有重编码,就是简单的直接旋转,速度基本上就取决于硬盘读取速度。
类似照片图 ...
-c:a copy 是指音频流进行了复制。
但是视频流会重新编码的,并且如果没有添加其他参数对视频流编码加以限制的话,会采用ffmpeg默认的参数。
所以我一般会加上对视频流的限制参数:

ddzyhhh 发表于 2023-11-20 23:31

照你这样说我还可以旋转、翻转、镜像等。

xiangzz 发表于 2023-11-20 23:46

ffmpeg可以设置 中英双语中中文为默认语言吗

yj89660054 发表于 2023-11-21 00:15

支持。。。

goblack 发表于 2023-11-21 00:22

xiangzz 发表于 2023-11-20 23:46
ffmpeg可以设置 中英双语中中文为默认语言吗

内嵌的字幕、音频轨道切换排序?

亲亲宝贝A静 发表于 2023-11-21 00:31

感谢分享,不懂就问:为什么非要放在C盘呀?{:300_943:}

tek2y 发表于 2023-11-21 01:13

思路不错

rufan321 发表于 2023-11-21 05:38

这个好,先前就遇到这个问题,视频转变了,但是封面小图没有跟着一起转变

FruitBaby 发表于 2023-11-21 07:44

ffmpeg功能强大
页: [1] 2 3
查看完整版本: BAT+ffmpeg实现视频横屏和竖屏互相转换