本文目录导读:

- 使用 FFmpeg(最强大、跨平台)
- 使用 HandBrake(图形界面,Windows/Mac/Linux)
- 使用 Python + moviepy(更灵活)
- 使用专业软件(Windows)
- 批量修复视频方向元数据
- 注意事项
- 推荐方案
使用 FFmpeg(最强大、跨平台)
Windows/Mac/Linux 通用
批量旋转当前目录下所有 MP4 文件:
# 1. 安装 FFmpeg
# Windows: 下载 exe 文件并添加到 PATH
# Mac: brew install ffmpeg
# Linux: sudo apt install ffmpeg
# 2. 创建批处理脚本
# Windows (batch.bat)
for %%i in (*.mp4) do (
ffmpeg -i "%%i" -vf "transpose=1" -c:v libx264 -preset fast -c:a copy "rotated_%%i"
)
# Mac/Linux (rotate.sh)
#!/bin/bash
for file in *.mp4; do
ffmpeg -i "$file" -vf "transpose=1" -c:v libx264 -preset fast -c:a copy "rotated_${file}"
done
旋转参数说明:
transpose=1:顺时针旋转90度transpose=2:逆时针旋转90度transpose=0:顺时针旋转90度并垂直翻转transpose=3:逆时针旋转90度并垂直翻转
更完整的旋转脚本(Python+FFmpeg)
import os
import subprocess
def batch_rotate_videos(input_folder, output_folder, rotation=1):
"""
批量旋转视频
rotation: 1=顺时针90度, 2=逆时针90度
"""
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.mp4', '.avi', '.mov', '.mkv')):
input_path = os.path.join(input_folder, filename)
name, ext = os.path.splitext(filename)
output_path = os.path.join(output_folder, f"rotated_{name}{ext}")
cmd = [
'ffmpeg',
'-i', input_path,
'-vf', f'transpose={rotation}',
'-c:v', 'libx264',
'-preset', 'fast',
'-c:a', 'copy',
output_path
]
print(f"旋转: {filename}")
subprocess.run(cmd)
# 使用示例
batch_rotate_videos("input_videos", "output_videos", rotation=1)
使用 HandBrake(图形界面,Windows/Mac/Linux)
- 下载安装 HandBrake
- 使用命令行批量处理:
# 安装 HandBrake CLI 后
for file in *.mp4; do
HandBrakeCLI -i "$file" -o "rotated_$file" --rotate=90
done
使用 Python + moviepy(更灵活)
from moviepy.editor import VideoFileClip
import os
def batch_rotate_with_moviepy(input_folder, output_folder, angle=90):
"""
使用moviepy批量旋转视频
angle: 90, 180, 270 度
"""
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.mp4', '.avi', '.mov')):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f"rotated_{filename}")
try:
clip = VideoFileClip(input_path)
rotated = clip.rotate(angle)
rotated.write_videofile(output_path, codec='libx264', audio_codec='aac')
clip.close()
rotated.close()
print(f"完成: {filename}")
except Exception as e:
print(f"错误 {filename}: {e}")
# 使用
batch_rotate_with_moviepy("input", "output", 90)
使用专业软件(Windows)
Format Factory
- 选择"视频" → "所有转MP4"
- 添加文件 → 点击"输出配置"
- 在"旋转"选项中选择角度
- 开始转换
批量修复视频方向元数据
有时视频只是元数据错误,实际数据正确:
# 使用 exiftool 修复方向 exiftool -overwrite_original -Rotation=0 *.mp4
注意事项
- 备份文件:旋转会重新编码,可能损失画质
- 测试先:先用一个文件测试旋转效果
- 性能考虑:大量视频用FFmpeg最快
- 音频处理:确保音频流正确复制或重新编码
推荐方案
- 简单批量:使用 FFmpeg shell 脚本
- 需要预览:使用 HandBrake 图形界面
- 需要复杂处理:使用 Python + moviepy
选择适合你技术水平和需求的方法即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播