2012-03-13 101 views
2

我正在編寫一個導出我捕獲的視頻(PAL SDI)的應用程序。原來的顏色空間是uyvy(4:2:2)。當我使用swscale將幀轉換爲4:2:0並使用avcodec進行編碼時,字段之間出現顏色滲色。我懷疑這是由於swscale沒有意識到幀被隔行掃描。這裏是我出口的視頻顯示領域之一的鮑伯去隔行幀的一部分的例子:Swscale色彩空間轉換隔行幀?

color bleeding between fields

正如你所看到的,顏色與其他領域的出血。我如何避免這種情況發生?我已經看過圖書館,並試圖在swscale中找到任何可以尊重這些字段的東西,但我沒有找到任何東西。

我將每個字段存儲在單獨的緩衝區中,所以我可以在手之前單獨處理字段,如果這會有所幫助。

感謝您的任何幫助!

問候 卡爾

編輯:基本上,我要的是輸出PAL DV。我懷疑swscale能夠以某種方式產生這種隔行掃描420,因爲ffmpeg(應用程序)可以處理這個(我認爲)。

回答

3

答案是做兩個swscale操作,每個字段一個。您可以通過指定高度的一半來指定swscale使用相同的緩衝區,雙倍步長,然後將第二個操作偏移一行。

我終於從libav-user列表中得到了答案。示例代碼可以在MPlayer/libmpcodecs/vf_scale.c和libavfilter/vf_scale.c中找到。

相關問題