2017-09-11 94 views
0

如果使用libx264將一疊圖像轉換爲使用FFMPEG的.mp4編碼h.264視頻並且沒有在調用中指定像素格式FFMPEG是YUVJ420的默認像素格式?我一直在做一些實驗,並且如果我爲我的格式指定了YUVJ420,而且如果我指定了沒有格式的話,結果會一樣。FFMPEG的默認像素格式將圖像堆棧編碼爲電影

回答

0

輸出像素格式取決於輸入像素格式,正在使用的編碼器以及是否正在執行任何濾波。

根據ffmpeg -h encoder=libx264該編碼器支持以下像素格式:yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p nv12 nv16 nv21。

默認情況下,ffmpeg會自動將像素格式轉換爲其中一種支持的格式:無論哪一種最相似於源像素格式。您可以使用-loglevel debug更詳細地查看控制檯輸出的詳細信息。從RGB24輸入例如:

[format @ 0x55657882d6e0] compat: called with args=[yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21] 
[format @ 0x55657882d6e0] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21' 
[format @ 0x55657882d6e0] auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_null_0' and the filter 'format' 
[auto_scaler_0 @ 0x55657882eb00] picking yuv444p out of 8 ref:rgb24 alpha:0 
[auto_scaler_0 @ 0x55657882eb00] w:320 h:240 fmt:rgb24 sar:1/1 -> w:320 h:240 fmt:yuv444p sar:1/1 flags:0x4 

例如強制像素格式爲輸出:-vf format=yuv420p-pix_fmt yuv420p或。

+0

感謝您的解釋!這是有道理的,默認情況下,我的圖像編碼開始的方式。 – JMevorach