看了自己 NAS 內的每天容量報告一個多月,幾個超大檔案越看越礙眼,想說動手用 FFMPEG 把早期製作的影片檔案重新壓縮,但是怎麼壓都有問題,也解決了幾個問題,跟大家分享一下幾個參數使用心得和疑問。
最後我用的指令檔:
.\ffmpeg -i “測試.avi” -max_muxing_queue_size 8192 -ss 00:20 -t 00:30 -c:v libx264 -b 24000k -preset veryslow -minrate 24000k -tune film -crf 5 -c:a mp3 crf15_b24m.mkv
- .\ffmpeg :因為是使用 powershell ,所以下指令前面加了 .\
- -i “測試.avi” : 指定輸入檔名,如果有中文字,需要用雙引號括起來。
- -max_muxing_queue_size 8192 :因為原始檔案很大的關係(24GB)或是我原始檔直接抓100m區域網路(NAS內的檔案)的速度不夠快,所以一直會出現 Too many packets buffered for output stream 0:0 ,我解決方法是把這個參數放大到 819200 才可以順利轉檔。
- -ss 00:20 :檔案開始轉檔的位置,另外還有更精確的方法,可以查一下手冊
- -t 00:30 :要剪多長的時間,一開始我一直搞錯,以為這兩個參數是剪輯 20 ~ 30 秒 總共十秒,後來注意看才發現是從20秒處開始剪下30秒長度的影片。
- -c:v libx264 : -c:v 是簡寫,libx264 是指定轉碼格式。 (mp4 常用 libx264)
- -b 24000k :bitrate 24M ,簡單說此數值越高,畫質越好,可以參考原始檔的 bitrate。
- -preset veryslow : 轉碼速度越慢,畫質越好,從 ultrafast 到 placebo,但是 placebo 效益太低。
- -minrate 24000k :最低畫質,相對應還有 -maxrate
- -tune film :影片最佳化,如果是照片合籍,可以用 stillimage
- -crf 5 :壓縮比從 1 到 51 , 18 算是肉眼看不出的程度,因為我一直轉出有橫紋,就索性調到 5
- -c:a mp3 :音效指定轉檔格式,也可用 copy 就不轉音訊。
- crf15_b24m.mkv:輸出檔名, 副檔名部份可以讓 ffmpeg 自動判斷要轉哪種格式。
此問題已經解決,使用 -deinterlace