用mencoder,handbrake cli或ffmpeg自动检测旋转和旋转视频
问题描述:
我发现了关于使用mencoder和ffmpeg旋转视频的问题,但是我是在完全自动化的解决方案之后。用mencoder,handbrake cli或ffmpeg自动检测旋转和旋转视频
任何人都可以帮忙。
我想
- 检测视频取向
- 旋转。如果需要
- 重置的视频元数据(否则看一个iOS设备上会引起不必要的旋转)
- 保存视频以所需的格式
原因是希望在HTML5视频播放器中使用已处理的视频。如果我在不重置元数据的情况下旋转,iOS设备将读取元素并进一步旋转,导致视频以另外90度出现。
答
我使用了一个小脚本和HandBrakeCLI。
关注的 “--rotate” 参数与手刹1.0改变,这将与1.0.7工作:
for i in *.mp4
do
r=$(exiftool -Rotation $i | cut -d ":" -f2 | sed 's/^[ ]*//')
HandBrakeCLI -i $i -o ./out/$i --rotate=angle=$r -e x264 -q 21 -X 1000
done
答
安迪的回答一样,这里是一个PowerShell和手刹版本
$SourceVideoPath = "C:\Videos\"
$ListOfVideos = Get-ChildItem -path $SourceVideoPath -Filter *.mpg
ForEach ($InputFile in $ListOfVideos){
$rotationFromEXIF = 0
Write-Host "Now processing: $InputFile"
$InputFullName = $InputFile.Fullname
$OutputFullName = $InputFile.DirectoryName + "\output\" + $InputFile;
$rotationFromEXIF = ((& 'C:\Utilities\exiftool.exe' -rotation $InputFullName) -split ": ")[1]
if ($rotationFromEXIF -gt 0){Write-Host "Rotating $rotationFromEXIF degrees"}
(& 'C:\Program Files\HandBrake\HandBrakeCLI.exe' -i $InputFullName -o $OutputFullName --rotate=angle=$rotationFromEXIF)
}