現在我們都使用智能手機進行短視頻的拍攝和制作,同時帶有音頻文件。
但是有時候豎屏拍攝的圖像,或者橫屏拍攝的圖像想要進行旋轉,做一些特效,進行二次加工的時候,需要耗費很多的時間。
有很多基于GUI的工具和媒體播放器,比如Smplayer,VLC,都有内置的旋轉視頻功能。但我們更喜歡命令行實用程序,因為處理的文件不止一個兩個,每個都手動去操作,效率太低了。
之前的一系列文章,我們已經深度的。向大家介紹了 ffmpeg 一些令人驚豔的功效。如将文件轉換為另一種格式、裁剪、拆分和合并文件等等。
本文也使用該工具,實現圖像旋轉的功能。
ffmpeg 有一個名為“Transpose”的功能,用于旋轉視頻。使用此功能,我們可以輕松地順時針和逆時針旋轉視頻,以及垂直和水平翻轉它們。
比如下面這一行指令,把視頻文件按照順時針方向旋轉90°。
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
或者使用語義化的參數名稱。
ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4
這裡,transspose=1 表示順時針90度轉置給定的視頻。
下面是轉置功能可用的參數列表:
要将視頻順時針旋轉180度,需要像下面這樣轉置兩次。
ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4
上述命令把給定視頻文件的音頻和視頻部分進行了重新編碼。如果您不想這麼耗費資源,僅僅更改元數據中的旋轉設置,就用以下的命令:
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
還有更甚者,你可以将輸入文件的所有全局元數據,複制到輸出文件中,包括日期、攝像機詳細信息等。如下所示:
ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4
需要注意的是,上面兩個通過設置元數據進行的旋轉,在一些播放器上并不受支持。但是,性能更高。
使用程序化的角度解決問題,這是程序員的必修課。可能看起來不是那麼直觀,但是一旦打通了整個處理流程,你也就擁有了超凡的處理能力。
Happy coding :_)
我是 @程序員小助手 ,持續分享編程知識,歡迎關注。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!