使用mencoder,handbrake cli或ffmpeg自动检测旋转并相应地旋转视频

时间:2012-12-29 21:40:39

标签: iphone ios rotation ffmpeg mencoder

我发现有关使用mencoder和ffmpeg旋转视频的问题,但我是在完全自动化的解决方案之后。

任何人都可以帮忙解决这个问题。

我想

  • 检测视频方向
  • 根据需要旋转
  • 重置视频上的元数据(否则在iOS设备上观看会导致不必要的轮播)
  • 以所需格式保存视频

原因是希望在HTML5视频播放器中使用已处理的视频。如果我在不重置元数据的情况下进行旋转,则iOS设备将读取元并进一步旋转,从而导致视频再次出现90度。

2 个答案:

答案 0 :(得分:2)

我使用了一个小脚本和HandBrakeCLI。

注意," - 旋转"参数已随HandBrake 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

答案 1 :(得分:0)

与Andy的答案类似,这是PowerShell和Handbrake版本

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