2013-03-11 64 views
24

我有一個視頻文件。我用MediaInfo實用程序打開它,我可以在該文件中看到具有屬性旋轉90(以及其他屬性,如CodecID,比特率等)的視頻流。我可以使用FFmpeg設置視頻流的旋轉字段嗎?

現在我有另一個視頻文件沒有該屬性旋轉90,它根本沒有旋轉屬性。

我可以使用ffmpeg.exe,使它生成添加了Rotation 90屬性的輸出文件,並且沒有其他更改嗎?我真的不想做任何轉換,只想設置Rotation屬性。我試過-metadata選項無濟於事。

回答

57

這適用於最近的FFmpeg:

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4 

這將stream copy的比特流,所以不進行編碼。只有第一個視頻流的元數據(v:0)在此處更改,播放器將以旋轉的方式顯示視頻。如果你想「物理」旋轉視頻

  • ,你必須use the transpose filter:(並非所有的玩家都會支持這一點。)

    其他注意事項。過濾將需要重新編碼,因此您將不得不刪除-c copy

  • 如果您忽略-c copy,並且想要編碼而不是僅重新複用,那麼ffmpeg將自動旋轉視頻,如果有任何現有的旋轉元數據。您可以通過-noautorotate禁用此行爲。

+0

非常感謝,這是成功的! – 2013-03-11 11:14:26

+0

我已經編譯了ffmpeg的最新代碼,並且在運行此命令時沒有錯誤,但仍然是視頻不旋轉。請幫助 – 2014-01-08 05:56:55

+1

@MohitChauhan請注意,這實際上並未旋轉視頻。它只是設置旋轉標誌,這使得一些球員以旋轉的方式顯示它。如果您遇到命令問題,請在[SU]上提出問題並顯示命令及其完整的控制檯輸出。 – slhck 2014-01-08 06:50:07