ffmpeg
ほとんどの人は、OBSのようなソフトウェアを使用してOwncastに配信します。 コマンドラインから直接ストリームを送信したい場合、ffmpegはカメラやキャプチャカードをキャプチャし、RTMPを介してサーバーにプッシュできます。 これは高度な方法であり、コマンドラインに慣れていることを前提としています。
以下の例はLinux用で、/dev/video2カメラとhw:1,0のALSAオーディオデバイスをキャプチャします:
ffmpeg -f alsa -ac 2 -i hw:1,0 -thread_queue_size 64 \
-f v4l2 -framerate 60 -video_size 1280x720 -input_format yuyv422 -i /dev/video2 \
-c:v libx264 -preset veryfast -b:v 1984k -maxrate 1984k -bufsize 3968k \
-vf "format=yuv420p" -g 120 -c:a aac -b:a 128k -ar 44100 \
-f flv rtmp://<ip-of-your-server>/live/<your-streaming-key>
主要なオプションが行うこと:
-i /dev/video2と-i hw:1,0: ビデオとオーディオの入力。 これらは、ハードウェアとプラットフォームに応じて変更する部分です(下記参照)。-c:v libx264 -preset veryfast: x264でビデオをエンコードします。veryfastは、低いCPU使用に対していくつかの圧縮効率を犠牲にします。 遅いプリセットは、同じビットレートでより良い画質を提供しますが、より多くのCPUを使用します。-b:v 1984k -maxrate 1984k -bufsize 3968k: 約1984 kbpsのビデオビットレートを目指し、そこで制限します。 ビデオ品質を選択するを見て、コンテンツとアップロード速度に合わせたビットレートを選択してください。-g 120: emit a keyframe every 120 frames.-gcounts frames, not seconds, so at 60 fps this is a keyframe every 2 seconds, which is what Owncast needs to segment the stream cleanly. Set-gto twice your framerate.-c:a aac -b:a 128k -ar 44100: 128 kbpsおよび44.1 kHzのAACオーディオ。-f flv rtmp://.../live/<your-streaming-key>: 結果をOwncastサーバーに送信します。/live/パスを保持し、ストリームキーを使用します。
他のプラットフォームの入力
オペレーティングシステム間で変更されるのは、入力フラグのみです。 上記のエンコーディングと出力オプションは変わりません。
macOSではavfoundationを使用します。 デバイスをリストし、インデックスでvideo:audioの順で選択してください:
ffmpeg -f avfoundation -list_devices true -i ""
ffmpeg -f avfoundation -framerate 30 -i "0:0" ...
Windowsではdshowを使用します。 デバイスをリストし、名前で選択してください:
ffmpeg -list_devices true -f dshow -i dummy
ffmpeg -f dshow -i video="Your Camera":audio="Your Microphone" ...
ほとんどのセットアップでは、専用の放送アプリケーションの方がffmpegコマンドを維持するよりも簡単です。 一般的なオプションのために、放送ソフトウェアの概要を参照してください。
Improve this page
See something missing or incorrect? Edit this page and improve the documentation for everyone.
Contributors to this documentation
