我正在使用 FFmpeg-python 系結來使用 FFmpeg。我必須從 x11grab 獲取輸入,為此我在 shell 中已經有了一個等效的命令,即,
ffmpeg -nostdin -hide_banner -nostats -loglevel panic -video_size 1920x1080 -r 60 -framerate 30 -f x11grab -i :1 -f alsa -ac 2 -i pulse -preset fast -pix_fmt yuv420p file.mkv &
我已經瀏覽了 FFmpeg-Python 的檔案來創建等效的命令,但是,我在檔案中找不到任何 x11grab 示例。
我想使用系結使代碼更具可讀性,該命令適用于 subprocess.call() / os.system()
uj5u.com熱心網友回復:
語法類似于以下代碼示例:
import ffmpeg
(
ffmpeg
.output(ffmpeg.input(':0', s='192x128', r=30, f='x11grab'),
ffmpeg.input('sine=frequency=500', f='lavfi'),
'file.mkv',
vcodec='libx264', acodec='aac', preset='fast', pix_fmt='yuv420p', t=5)
.global_args('-nostdin', '-hide_banner', '-nostats')
.overwrite_output()
.run()
)
筆記:
- 我的 Ubuntu 18.04 虛擬機不接受 1920x1080 解析度,也不接受音頻輸入設備(我用合成音頻替換了它)。
- 您可能可以替換
ffmpeg.input('sine=frequency=500', f='lavfi')為:
ffmpeg.input('pulse', f='alsa', ac=2),但我無法對其進行測驗... - 該示例選擇視頻和音頻編解碼器:(
vcodec='libx264', acodec='aac'選擇編解碼器是一種很好的做法)。 - 該示例
t=5僅用于記錄 5 秒。 .overwrite_output()用于在不詢問的情況下覆寫輸出。
抓取樣本:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/368992.html
標籤:蟒蛇-3.x ffmpeg ffmpeg-python
下一篇:撰寫程式將兩個串列相加,輸入為A=[1,2,3],B=[9,4,1],輸出=[1,0,6,4]..即123 941=1064
