題 通過ffmpeg x11grab設備從xvfb錄製屏幕時出現黑屏


我正在嘗試錄製來自運行的Firefox的視頻 xvfb-run 但除了黑屏外,它總是在視頻文件中不輸出任何內容。

這是我做的:

啟動一個firefox,打開google.com:

$ xvfb-run firefox https://google.com

然後它將使用默認的顯示服務器編號99.我可以通過命令查看顯示信息 xdpyinfo -display :99

截圖可以通過命令很好地完成:

$ xwd -root -silent -display :99.0 | xwdtopnm |pnmtojpeg > screen.jpg

開始使用ffmpeg錄製視頻:

$ ffmpeg -f x11grab -i :99.0 out.mpg

當我播放視頻文件時 out.mpg,一直都是黑屏。

我錯過了什麼參數嗎?

更新

我通過以下命令取得了進展:視頻無效,而不是黑屏:

$ ffmpeg -y -r 30 -g 300 -f x11grab -s 1024x768 -i :99 -vcodec qtrle out.mov

請注意,它需要屏幕分辨率匹配,指定更多選項 xvfb-run

$ xvfb-run -s "-screen 0 1224x768x16" -a firefox http://google.com

但我仍然想在這裡獲得更多的反饋和答案。


5
2018-03-11 02:20


起源


黑人根據什麼球員?請顯示每個的完整控制台輸出 ffmpeg 命令。 - LordNeckbeard
以下 文檔,我還補充道 -show_region 1 爭論。仍然沒有運氣。一些突出的東西:顯示器上甚至沒有顯示該區域。如果我在主顯示屏上運行它 :0.0,兩者都有效(我得到視頻 和 看到區域邊界)。如果我在另一個屏幕上運行(比如 vncserver)既不起作用。 - exhuma


答案:


我碰巧有同樣的問題,發現: 你必須指定深度(在這種情況下為16),因此ffm​​peg不會產生黑屏。

例如

Xvnc -geometry 1024x768 -depth 16 :10  <<---WORKS
Xvnc -geometry 1024x768 :10            <<---does NOT work, produce black screen.

4
2018-06-07 13:26



16 似乎是默認的(根據Xvnc4手冊頁)。我有同樣的問題,並試過兩個 16 和 24 作為深度。還有黑色視頻。你還有你用過的命令嗎? ffmpeg? - exhuma


我遇到過同樣的問題。似乎它與官方Ubuntu軟件包中提供的ffmpeg版本有關(準確地說是Kubuntu 15.04)。

我下載了ffmpeg源代碼並提供了一些幫助 文檔 我設法讓一些東西運轉起來。

構建過程需要一個  時間!默認情況下,禁用許多功能(x11grab等)。我最終得到以下內容:

./configure \
    --prefix=/home/exhuma/.local \
    --enable-x11grab \
    --enable-gpl \
    --enable-libx264 \
    --enable-libmp3lame \
    --enable-nonfree

我現在有兩個視頻  聲音。


1
2018-04-03 08:33