2014-06-20 89 views
0

我是視頻編碼的完全新手。我試圖用以下任何一種格式將一系列.dpx文件編碼到一個編碼的視頻O/P文件中。 (.mp4,.avi,.h264,.mkv等)如何使用X264對一系列.dpx文件進行編碼

我試過2種不同的方法。第一個工作,第二個不工作。 我想知道兩者的區別。任何幫助/輸入將不勝感激。

1)使用FFMPEG和x264庫,它運作良好。我能夠產生期望的輸出

ffmpeg -start_number 0 -i frame%4d.dpx -pix_fmt yuv420p -c:v libx264 -crf 28 
-profile:v baseline fromdpx.h264 

2)I第一次嘗試來連接使用的ffmpeg concate協議的所有DPX文件到一個單一文件,然後使用X264編碼連結文件。 在這裏,我看到連接文件的大小是連接的所有文件的總和。但是,當我使用x264命令對連接文件進行編碼時,我得到一個綠色屏幕(基本上不是所需的輸出)。

ffmpeg -i "concat:frame0.dpx|frame01.dpx|frame2.dpx etc" -c copy output.dpx 

然後

x264 --crf 28 --profile baseline -o encoded.mp4 --input-res 1920x1080 --demuxer raw 
output.dpx 

我也試着使用編碼ffmpeg的連結文件如下

ffmpeg -i output.dpx -pix_fmt yuv420p -c:v libx264 -crf 28 -profile:v baseline fromdpx.h264 

這也給了我一個空白的視頻。

難道有人請向我指出這裏發生了什麼?爲什麼第一種方法工作,第二種方法不工作?

謝謝。

回答

0

在第二種方法中,您將DPX文件指定爲x264(--demuxer raw)的原始輸入,但DPX不是原始格式(它是更具有標頭,元數據和可選RLE壓縮的容器),因此需要解碼。 x264僅支持這種原始格式(--input-csp):i420,yv12,nv12,i422,yv16,nv16,i444,yv24,bgr,bgra,rgb。所有這些格式可以有8..16位每個組件( - 輸入深度)。

另外我懷疑DPX格式支持拼接,因爲它是圖像格式而不是視頻格式。所以可能你的concat結果已經被破壞了。

相關問題