用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) 
    }