ffserverでビデオをストリーミングしたいです。私のビデオはmkvやaviなどのコンテナ形式で、時にはいくつかのオーディオ/ビデオトラックが含まれています。どのトラックを使用するかffserverにどのように通知しますか?いつも最初を取るようです。
答え1
見たらこのページffmpegを使用してスライスしてからffserverに渡すテクニックを示します。
$ ffmpeg \
-f v4l2 -s 320x240 -r 25 -i /dev/video0 \
-f alsa -ac 1 -i hw:0 \
http://localhost:8090/feed1.ffm
上記のコマンドは次のことを行います。
- 最初の部分は
-f v4l2 -s 320x240 -r 25 -i /dev/video0
ウェブカメラビデオの最初の入力を表し、ffmpeg
ウェブカメラビデオをキャプチャします。詳しくは、ウェブカメラの入力を取得する方法をご覧ください。 - 2番目の部分は
-f alsa -ac 1 -i hw:0
2番目の入力を表し、ffmpeg
システムのオーディオ設定に従ってオーディオをキャプチャします。詳細については、FFmpegとALSAを使用したオーディオキャプチャの詳細を参照してください。 - 最後の重要な部分は、
http://localhost:8090/feed1.ffm
ffmpegにffserverに接続し、放送用のオーディオ+ビデオストリームを送信するように指示するフィードURLを表します。この例では、すべてがコンピュータで実行されていることを意味するホスト名を使用していますが、ライブオンラインffserverにデータを提供する必要がある場合は、ffserverコンピュータの実際のホスト名またはIPアドレスにlocalhost
変更する必要があります。localhost
また、フィード名が.ffm
で終わっていることを確認し、そうでない場合は、次のように-f ffm
フィードURLの前に出力形式を追加して手動で指定します(もはや自動的に決定されません)。ffmpeg
-f ffm http://localhost:8090/blah.bleh
上記のコマンドを入力すると、ffmpegは入力ストリームに関するいくつかの統計を表示し、出力フレームを計算するのを見ることができます。これは(これまで)すべてが正常に動作しているという良い信号です。