ffmpeg命令无损或重新编码转换mp4视频角度位置
发布时间:2026-08-14 | 浏览:6
更新: 2020-06-07 11:40
当mp4视频画面颠倒了,可以用ffmpeg命令设置metadata元数据无损转换并旋转视频画面,这样处理的速度极快且不用担心画质受影响的问题。
无损调整后的视频,一般的视频工具都能够自动摆正画面。如有些工具遇到不能摆正的时候,可以考虑用transpose滤镜重新编码转换调整视频角度了,但这样不仅耗时而且画质是有损的。
ffmpeg.exe v20200603 32bit
7-Zip v19.00 或其它压缩解压软件
记事本(系统自带)或其它文本编辑工具
步骤A:无损转换视频角度(metadata元数据)
1 A1.搜“ffmpeg windows版”获取官方下载地址, 打开页面后,在第二个选择“Windows 32-bit”,点“Download Build”下载。
A1.搜“ffmpeg windows版”获取官方下载地址,
打开页面后,在第二个选择“Windows 32-bit”,点“Download Build”下载。
2 A2.用7-Zip等解压工具打开下载好的zip文件,把bin下面的“ffmpeg.exe”文件拖出来。
A2.用7-Zip等解压工具打开下载好的zip文件,把bin下面的“ffmpeg.exe”文件拖出来。
3 A3.把视频文件复制粘贴到ffmpeg.exe所在文件夹内,本例是“需要向左旋转90度.mp4”(宽高是:768x432)。
A3.把视频文件复制粘贴到ffmpeg.exe所在文件夹内,本例是“需要向左旋转90度.mp4”(宽高是:768x432)。
4 A4.打开记事本(C:\Windows\notepad.exe)程序或其它文本编辑器, 需要向左旋转90度,就复制粘贴下面一行命令: ffmpeg.exe -i "需要向左旋转90度.mp4" -metadata:s:v:0 rotate=90 -c:v copy -c:a copy "输出的.mp4" 或者: ffmpeg.exe -i "需要向左旋转90度.mp4" -metadata:s:v:0 rotate=-270 -c:v copy -c:a copy "输出的.mp4" 需要向右旋转90度,就复制粘贴下面一行命令: ffmpeg.exe -i "需要向右旋转90度.mp4" -metadata:s:v:0 rotate=-90 -c:v copy -c:a copy "输出的.mp4" 或者: ffmpeg.exe -i "需要向右旋转90度.mp4" -metadata:s:v:0 rotate=270 -c:v copy -c:a copy "输出的.mp4" 需要旋转180度,就复制粘贴下面一行命令: ffmpeg.exe -i "需要旋转180度.mp4" -metadata:s:v:0 rotate=-180 -c:v copy -c:a copy "输出的.mp4" 或者: ffmpeg.exe -i "需要旋转180度.mp4" -metadata:s:v:0 rotate=180 -c:v copy -c:a copy "输出的.mp4" 其中,“-metadata:s:v:0”是“-元数据:流:视频:索引0”, “rotate=90”是逆时针旋转90度,“rotate=-270”是顺时针旋转270度, “-c:v copy”是复制视频(不重新编码转换), “-c:a copy”是复制音频(不重新编码转换)。 命令行参考了ffmpeg官网说明文档的如下内容: -metadata[:metadata_specifier] key=value (output,per-metadata) Set a metadata key/value pair. To set the language of the first audio stream: ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT 还参考了“ffmpeg.exe -h full>full.txt”文本中的如下内容: h264_metadata_bsf AVOptions: -rotate <double> ...V....B. Set rotation in display orientation SEI (anticlockwise angle in degrees) (from -360 to 360) (default nan)
A4.打开记事本(C:\Windows\notepad.exe)程序或其它文本编辑器,
需要向左旋转90度,就复制粘贴下面一行命令:
ffmpeg.exe -i "需要向左旋转90度.mp4" -metadata:s:v:0 rotate=90 -c:v copy -c:a copy "输出的.mp4"
ffmpeg.exe -i "需要向左旋转90度.mp4" -metadata:s:v:0 rotate=-270 -c:v copy -c:a copy "输出的.mp4"
需要向右旋转90度,就复制粘贴下面一行命令:
ffmpeg.exe -i "需要向右旋转90度.mp4" -metadata:s:v:0 rotate=-90 -c:v copy -c:a copy "输出的.mp4"
ffmpeg.exe -i "需要向右旋转90度.mp4" -metadata:s:v:0 rotate=270 -c:v copy -c:a copy "输出的.mp4"
需要旋转180度,就复制粘贴下面一行命令:
ffmpeg.exe -i "需要旋转180度.mp4" -metadata:s:v:0 rotate=-180 -c:v copy -c:a copy "输出的.mp4"
ffmpeg.exe -i "需要旋转180度.mp4" -metadata:s:v:0 rotate=180 -c:v copy -c:a copy "输出的.mp4"
其中,“-metadata:s:v:0”是“-元数据:流:视频:索引0”,
“rotate=90”是逆时针旋转90度,“rotate=-270”是顺时针旋转270度,
“-c:v copy”是复制视频(不重新编码转换),
“-c:a copy”是复制音频(不重新编码转换)。
命令行参考了ffmpeg官网说明文档的如下内容:
-metadata[:metadata_specifier] key=value (output,per-metadata)
Set a metadata key/value pair.
To set the language of the first audio stream:
ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
还参考了“ffmpeg.exe -h full>full.txt”文本中的如下内容:
h264_metadata_bsf AVOptions:
-rotate <double> ...V....B. Set rotation in display orientation SEI (anticlockwise angle in degrees) (from -360 to 360) (default nan)
5 A5.点“文件 → 另存为”,选择ffmpeg.exe所在路径,保存类型选择“所有文件(*.*)”,文件名输入“转换.bat”,点“保存”按钮。
A5.点“文件 → 另存为”,选择ffmpeg.exe所在路径,保存类型选择“所有文件(*.*)”,文件名输入“转换.bat”,点“保存”按钮。
6 A6.双击“转换.bat”文件,等待一点时间,直到cmd命令窗口自动关闭后,再用视频播放器打开“输出的.mp4”就可以看到效果了。 可以发现输出的视频并没有改变原始文件的宽高:768x432(没重新编码转换)。 该方法是最快速方便的,但还是有少部份视频工具不会自动摆正视频的位置。 END
A6.双击“转换.bat”文件,等待一点时间,直到cmd命令窗口自动关闭后,再用视频播放器打开“输出的.mp4”就可以看到效果了。
可以发现输出的视频并没有改变原始文件的宽高:768x432(没重新编码转换)。
该方法是最快速方便的,但还是有少部份视频工具不会自动摆正视频的位置。
步骤B:重编码转换视频角度(仅含命令行和效果)
1 B1.用记事本打开“转换.bat”文件,删除里面所有内容, 需要向左旋转90度(逆时针旋转一次),就复制粘贴下面一行命令: ffmpeg.exe -i "需要向左旋转90度.mp4" -vf "transpose=dir=cclock" "输出的.mp4" 需要向右旋转90度(顺时针旋转一次),就复制粘贴下面一行命令: ffmpeg.exe -i "需要向右旋转90度.mp4" -vf "transpose=dir=clock" "输出的.mp4" 需要旋转180度(顺时针旋转两次),就复制粘贴下面一行命令: ffmpeg.exe -i "需要旋转180度.mp4" -vf "transpose=dir=clock,transpose=dir=clock" "输出的.mp4" 或(逆时针旋转两次): ffmpeg.exe -i "需要旋转180度.mp4" -vf "transpose=dir=cclock,transpose=dir=cclock" "输出的.mp4" 然后,点“文件 → 保存”。 参考了“ffmpeg.exe -h full>full.txt”文本中的如下内容: transpose AVOptions: dir <int> ..FV...... set transpose direction (from 0 to 7) (default cclock_flip) cclock_flip 0 ..FV...... rotate counter-clockwise with vertical flip clock 1 ..FV...... rotate clockwise cclock 2 ..FV...... rotate counter-clockwise clock_flip 3 ..FV...... rotate clockwise with vertical flip
B1.用记事本打开“转换.bat”文件,删除里面所有内容,
需要向左旋转90度(逆时针旋转一次),就复制粘贴下面一行命令:
ffmpeg.exe -i "需要向左旋转90度.mp4" -vf "transpose=dir=cclock" "输出的.mp4"
需要向右旋转90度(顺时针旋转一次),就复制粘贴下面一行命令:
ffmpeg.exe -i "需要向右旋转90度.mp4" -vf "transpose=dir=clock" "输出的.mp4"
需要旋转180度(顺时针旋转两次),就复制粘贴下面一行命令:
ffmpeg.exe -i "需要旋转180度.mp4" -vf "transpose=dir=clock,transpose=dir=clock" "输出的.mp4"
ffmpeg.exe -i "需要旋转180度.mp4" -vf "transpose=dir=cclock,transpose=dir=cclock" "输出的.mp4"
参考了“ffmpeg.exe -h full>full.txt”文本中的如下内容:
transpose AVOptions:
dir <int> ..FV...... set transpose direction (from 0 to 7) (default cclock_flip)
cclock_flip 0 ..FV...... rotate counter-clockwise with vertical flip
clock 1 ..FV...... rotate clockwise
cclock 2 ..FV...... rotate counter-clockwise
clock_flip 3 ..FV...... rotate clockwise with vertical flip
2 B2.再运行“转换.bat”批处理后,等待一段时间,输出的视频宽高改变了(重新编码转换了)。 END
B2.再运行“转换.bat”批处理后,等待一段时间,输出的视频宽高改变了(重新编码转换了)。
一般就用无损转换方法,处理时间极快,也不会担心处理后的清晰度有损失。出现问题再用重编码方法。
ffmpeg的视频音频的处理功能有很多,教程也有很多,值得收藏。
如何使用ffmpeg转换音视频的格式? 2020.04.05
ffmpeg视频格式转换 2020.04.27
ffmpeg改变视频尺寸 2020.05.03
用ffmpeg的批处理命令反向转换视频音频文件 2020.06.05
ffmpeg提取视频 2020.04.27