選擇電腦音訊

選擇電腦音訊

我正在使用這個腳本:http://www.thegameengine.org/miscellaneous/streaming-twitch-tv-ubuntu/串流至 Twitch。它可以工作,但我不想傳輸我的麥克風,只想傳輸電腦音訊。我應該如何更改腳本來實現這一目標?

答案1

選擇電腦音訊

脈衝音頻

這可以透過 PulseAudio 和pavucontrol.從HOWTO:在 Linux 上正確的截圖:

安裝pavucontrol。開始錄音ffmpeg。開始 pavucontrol。轉到“錄音”選項卡,您會發現ffmpeg 那裡列出了。將音訊擷取從“內部音訊模擬立體聲”變更為“內部音訊模擬立體聲監視器”。現在它應該記錄系統和應用程式音訊而不是麥克風。

該設定將被記住。下次您想要使用 進行錄製時ffmpeg,它將自動開始錄製系統音訊。如果您想恢復此狀態,請pavucontrol再次使用以變更回麥克風輸入。

阿薩斯

或者,如果您的音訊系統支援通常標記為的環回設備,則 ALSA 可以擷取系統音訊:立體聲混音,混合波出,單聲道混合, 或者你聽到什麼。檢查alsamixer你是否有其中之一,但是如今硬體環回並不常見。然後參考FFmpeg Wiki:使用 ALSA 捕捉音訊如果您的系統支援此功能,請取得正確的語法。

否則我相信你可以使用 ALSA 進行軟體環回,但我可能是不正確的並且沒有這方面的經驗。


蹩腳的腳本

ffmpeg那個可怕的、重複出現的腳本中的命令有一些問題:

  • -preset應該使用而不是-vpre
  • -qscale被 libx264 忽略(使用-crf-b:v
  • 圖片組未設定(使用-g
  • 應使用 VBV(使用-maxrate-bufsize
  • 輸出可能不使用相容的色度子取樣方案(使用-pix_fmt yuv420p
  • x11grab 輸入應該使用-framerate,而不是-r
  • -threads 6看起來像是一個任意數字,而且並非每個人都使用相同的硬體。您應該使用預設值(透過刪除-threads,但它是“貪婪的”),或者設定一個適當的值,允許您以令人滿意的速率進行編碼,但仍然允許足夠的電量來執行您正在錄製的其他內容。

該命令應該是這樣的:

ffmpeg \
-f alsa -ac 2 -i "$INAUD" \
-f x11grab -video_size "$INRES" -framerate "$FPS" -i :0.0 \
-vcodec libx264 -s "$OUTRES" -preset "$QUAL" -maxrate 1000k -bufsize 2000k -g 50 -pix_fmt yuv420p \
-acodec libmp3lame -ar 44100 -b:a 128k \
-f flv "$STREAM_URL"

筆記:不要盲目地使用我的範例值-maxrate-bufsize-g-b:a。您必須根據您的需求進行調整,如中所述使用 FFmpeg 對串流媒體網站進行編碼。另請參閱FFmpeg H.264 影片編碼指南

相關內容