2012-11-19 47 views
3

我目前擁有超過20000個FLV。他們目前沒有Alpha通道,並且都是黑色背景上CGI生成的文本。ChromaKey FLV透明度

我的問題: 我需要能夠去除黑色的背景,使之透明,這樣我就可以使用這些影片層,位於在我的閃存項目的圖片。

它需要一個自動化的過程,可經過視頻的整個目錄並刪除背景

我沒試過嗎?

我已經花了最後三天拉我的頭髮。目前我看到的選項是爲ffmpeg編寫自定義過濾器。

的最終目標:

層上隨機生成的視頻的FLV視頻在Flex中內置的Adobe AIR應用程序。

+0

查看是否有frei0r過濾器(如bluescreen0r)通過ffmpeg可以提供幫助。我從來沒有厭倦它,所以我不能給出更詳細的信息。 – LordNeckbeard

+0

@LordNeckbeard謝謝你我會研究那些:) –

回答

1

如果你有gstreamer,這裏有一個管道來執行它並查看你的輸出。這一個將視頻hi.mp4中的所有黑色替換爲另一個視頻中的內容。玩弄價值觀來獲得你需要的東西。如果您的文字或背景(其中之一)具有統一的顏色並在一定範圍內,將會起作用。

gst-launch filesrc location = hi.mp4! decodebin2! ffmpegcolorspace! alpha alpha = 1 method = 3 target -r = 0 target-g = 0 target -b = 0 white-sensitivity = 0 black-sensitivity = 128! videomixer name = vm! ffmpegcolorspace! sdlvideosink filesrc location = hi2.mp4! decodebin2! ffmpegcolorspace! alpha alpha = 1! VM。

然後,您可以用編碼器x264enc替換sdlvideo接收器,並通過其中一個視頻的音頻來創建容器。

如果你不知道什麼gstreamer是或不傾向於使用它,那麼與frei0r ffmpeg將作爲lordneckbeard提到的做法。我只是覺得這更快。 :)

如何到達此管道?

sudo apt-get install gstreamer-0.10基礎,好的壞和醜陋的libav/ffmpeg插件和gstreamer-tools包 - 如果你想從源代碼構建,請看gstreamer.net。

上面的命令行將工作並顯示該文件。用類似下面的代替sdlvideo接收器: x264enc bitrate =! flvmux! filesink location = filename.flv

如果你還沒有使用過gstreamer,那麼在你不得不稍微閱讀一下管道是什麼以及如何運行管道之前,大量的教程可用。如果你不傾向於使用gstreamer,那麼在其他答案中指出的其他工具可能會有所幫助。不過我建議你使用gstreamer,因爲如果你將來需要使用gstreamer,那麼你也可以使用gstreamer進行其他操作。