【问题标题】:Auto detect rotation and rotate video accordingly with mencoder, handbrake cli or ffmpeg使用 mencoder、handbrake cli 或 ffmpeg 自动检测旋转并相应地旋转视频
【发布时间】:2012-12-14 16:50:44
【问题描述】:

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

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

我想要

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

这样做的原因是希望在 HTML5 视频播放器中使用处理后的视频。如果我在不重置元数据的情况下旋转,iOS 设备将读取元数据并进一步旋转,导致视频再向外旋转 90 度。

【问题讨论】:

    标签: iphone ios rotation ffmpeg mencoder


    【解决方案1】:

    与安迪的回答类似,这里是 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)
        }
    

    【讨论】:

      【解决方案2】:

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

      注意,“--rotate”参数在 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
      

      【讨论】:

        猜你喜欢
        • 2016-04-27
        • 2011-04-25
        • 1970-01-01
        • 2014-05-13
        • 2020-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-15
        相关资源
        最近更新 更多