2017-04-06 57 views
1

我正在尋找以最佳質量編碼在VP9中使用iPhone 6s拍攝的4k視頻。FFmpeg - 爲VP9編碼選擇合適的比特率

作爲參考,我想編碼,經由ffprobe視頻流數據:

Duration: 00:00:10.48, start: 0.000000, bitrate: 46047 kb/s 
    Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p(tv, bt709), 3840x2160, 45959 kb/s, 29.98 fps, 29.97 tbr, 600 tbn, 1200 tbc (default) 
    Metadata: 
     creation_time : 2017-03-13T21:12:56.000000Z 
     handler_name : Core Media Data Handler 
     encoder   : H.264 
    Stream #0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, mono, fltp, 79 kb/s (default) 
    Metadata: 
     creation_time : 2017-03-13T21:12:56.000000Z 
     handler_name : Core Media Data Handler 

我使用下面的FFmpeg命令,基於these instructions(見Best Quality (Slowest) Recommended Settings部分)。

  1. ffmpeg -i INPUT.mov -c:v libvpx-vp9 -pass 1 -b:v 46000K -threads 4 -speed 4 -g 9999 -an -f webm -y /dev/null
  2. ffmpeg -I INPUT.mov -c:v libvpx-vp9 -pass 2 -b:v 46000K -threads 4 -speed 0 -g 9999 -an -f webm OUTPUT.webm

是否有最佳實踐選擇最優-b:v值,使得生成的視頻是從原來的視覺上不可區分?我嘗試過的值範圍從36000K-46000K,但是這些會導致整體比特率超過目標比特率的大文件。

在此先感謝!

+2

這就是CRF(恆定質量)模式的用途。使用'-crf 20 -b:v 0'跳過兩遍。在輸入的短段上測試不同的CRF值(0到63)。一旦你達到產生足夠小和足夠好的輸出的價值,就使用該值。 – Mulvya

+0

@ Mulvya評論之上的獎勵點:雖然使用其他編碼器,但1-pass和2-pass CRF應該可以得到相同的結果,但遺憾的是libvpx並不是這種情況,並且您仍然應該執行2遍編碼,即使在做CRF ... –

回答

0

只需要嘗試不同的低得多的比特率並查看結果。我試着去看神器。頭髮仍然看起來不錯嗎?布?刻字,就像路標和商店櫥窗一樣?沒有阻塞?鋒利的邊緣沒有黑暗和光線的出血?沒有回聲?我發現原始運動模糊很難判斷,必須並排比較以區分那個和壓縮僞影。

嘗試36000k的1/10。我發現標稱400k比特率的vp9在1280x720視頻上效果很好。 (ffmpeg與libvpx-vp9過沖,我通常最終實際比特率高出20%,480k)4K是3840x2160,9x 1280x720的大小,所以看起來3600k比特率應該會產生好的結果。

另一個指南是據說vp9的質量與mp4的質量相當於比特率的一半。在mp4中1000k比特率看起來不錯的視頻在vp9中應該看起來好於500k。