FFmpeg在遊戲影片錄製中的應用:畫質與檔案大小的綜合比較

赵青青發表於2024-08-03

我們遊戲內的影片錄製目前只支援avi固定位元速率,在玩家見面會上有玩家反饋希望改善錄製畫質,我最近在研究了有關影片畫質的一些內容並做了一些統計。

錄製影片大小對比

首先在遊戲引擎中增加了對錄製mp4格式的支援,並且使用h246編碼可以直接在網頁上播放無法再做轉碼

測試場景:影片尺寸固定大小為: 1904x1002,avi使用mpeg4,mp4使用h264,位元率(bit rate /位元速率)20Mb/s,錄製出來的影片檔案大小

影片格式 30fps/30s 30fps/60s 60fps/60s 60fps/180s
avi影片大小 70.2 143.07 144.03 429.44
mp4影片大小 68.4 139.66 140.59 430.7

實驗二:把位元速率調整到10Mb/s,相同的fps和影片時長,檔案體積縮小一半,這裡沒記錄到表格中。

為什麼mp4和avi的檔案大小接近?fps不會影響檔案大小嗎?

相同位元速率不同fps不會影響到畫質,fps只會影響影片的流暢度

簡單理解位元速率是分配給每一幀的資料量,分的越多,畫質越清晰,檔案體積也越大

不同畫質對應的位元速率表

現在我們遊戲內提供給玩家是avi格式 ,位元速率20Mb/s ,fps範圍在10~30之間

引擎已增加新增介面並且藏寶閣錄製客戶端已經在使用新介面,希望可以開放更多設定給到玩家

自定義格式:avi和mp4

自定義位元速率:用來提高畫質,比如720p,1080p,2k,4k,製作一個滑塊或下拉選單來選擇不同畫質

開放更高幀率,60FPS

附:不同畫質對應的位元速率表

畫質 720p 1080p 2k 4k
位元速率 1mbps~4mpbs 3mbps~8mbps 5mbps~20mpbs 20mbps~50mbps

錄製影片標準

參考網易主流手機遊戲標準如下:

尺寸:都是相近1920*1080

位元速率:10000kpbs左右,約10Mbps

幀率:50幀左右

大小:平均有20~40MB(長度在20秒左右的大小)

影片位元速率通常使用kbps(千位元每秒)或Mbps(兆位元每秒)作為單位。其中,1Mbps等於1000kbps。Mbps用於描述較高的位元速率,而kbps用於描述較低的位元速率。

天下3現在預設的位元速率:20000000,錄製20秒50fps的影片檔案大小為46.23MB,改為藏寶閣要求的位元速率,20秒影片50FPS檔案大小降為24MB

畫質對比

為什麼錄製avi和mp4格式的影片畫質上差別不大?

這是因為AVI和MP4都是容器格式,它們本身並不影響影片的畫質。實際上,影片的畫質取決於編碼器和位元率等因素。如果使用相同的編碼器和位元率,那麼AVI和MP4格式的影片畫質應該是相同的。但是,由於MP4格式通常使用更先進的影片編碼器,因此在相同位元率下,MP4格式的影片可能會更清晰。

h264和mpeg4那種畫質更清晰?

H.264和MPEG-4都是影片編碼標準,它們都可以提供高質量的影片壓縮。在相同的位元率下,H.264和MPEG-4的檔案大小應該是差不多的,但是,H.264通常比MPEG-4提供更好的畫質,因為它使用更先進的壓縮技術,可以在相同的位元率下提供更高質量的影片。此外,H.264還支援更高的解析度和幀速率,因此在高畫質影片和流媒體應用中更為常見。

fps對影片的影響?

FPS決定了影片的流暢度和清晰度,如果錄製的影片中有快速移動的物體或快速變化的場景,需要使用較高的 FPS 值來捕捉更多的細節,否則影片可能會出現模糊或失真的情況。

相關文章