網頁

2021年9月3日 星期五

使用ffmpeg旋轉影片 (轉正, 重新編碼, 或改metadata)

現在大家幾乎都用手機在錄影,
但有時候錄完才發現影片的直幅沒有轉過來,
假如使用iPhone, 現在影片可以直接點"編輯", 就可以像照片一樣旋轉,

假如是在電腦上處理, 可以使用ffmpeg,

ffmpeg中要旋轉影片主要是使用"Transpose"這個功能, 簡單的命令如下:


這邊簡單說明一下ffmpg命令組成:

c:\tools\ffmpeg\ffmpeg.exe -i input.webm -vf "transpose=2" output.mp4

-i 後面接的就是原始的檔案(input), -vf 則是要調用特殊濾鏡(filter), 後面可以接要控制的transpose/flip/rotate等參數, 最後則是輸出的檔案名稱.

上面的命令, ffmpeg會將原始影片讀入, 經過濾鏡的轉換, 重新編碼影片, 再寫到output.mp4







假如影片有點大, 可能需要一點轉換的時間, 像上面例子, 原始影片大約7分鐘, 160MB, 就花了大約8分鐘才轉換完, 太大的影片可以考慮使用修改影片描述資料metadata的方式, 命令如下:

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

這樣只會單純將影片對於方向描述作修正, 接下來的工作就是丟給播放器處理XD

對於一些新的播放器會根據這個影片旋轉的描述資訊作後續播放的處理, 假如有一些舊的播放器可能就沒辦法, 還是得回到上個部份把影片"真實的"轉換才可以正確播放.

解問題找google的途中還有發現一些不錯的參考資料,
列在底下日後參考, 收工.

參考資料:

How To Rotate Videos Using FFMpeg From Commandline

https://ostechnix.com/how-to-rotate-videos-using-ffmpeg-from-commandline/

20+ FFmpeg Commands For Beginners

https://ostechnix.com/20-ffmpeg-commands-beginners/


沒有留言:

張貼留言