用FFmpeg取代 AWS Media Converter

在之前一篇原本已經打算用 AWS Media Converter,畢竟價錢算是合理,但後來想到還有閒置的便宜 cloud instance (在 google cloud, 1vCPU, 1.7G ram, 50G HDD),不如來試試看在上面跑 ffmpeg performance。

在 ubuntu 18.04lts 上安裝 ffmpeg 其實還蠻容易的,apt-get install 就可以解決,而且 dependent libraries一個不漏。
用 aws media converter將 3xMB 的 1080p 檔案(bit rate約 110000kbps)切段之後大約剩下28MB,有稍微被壓縮過,花費大概 20秒時間。

如果要差不多的壓縮率,用 ffmpeg 指定 quality level 16 (參數 crf,參考https://superuser.com/questions/525928/ffmpeg-keeping-quality-during-conversion)。最終費時約 50 秒,比AWS是明顯地慢但不至於太誇張。

$ ffmpeg -i 1080.mp4 -map 0 -codec:v libx264 -crf 16 -codec:a aac -f ssegment -segment_list 1080.m3u8 -segment_list_flags +live -segment_time 10 1080_out%03d.ts

後來想想不對,既然沒有壓縮太多,如果使用者不介意file size,那不如指定 -codec:v copy 參數直接切段。

$ ffmpeg -i 1080.mp4 -map 0 -codec:v copy -codec:a aac -f ssegment -segment_list 1