私は ffmpeg と ffplay を使用して、2 台のコンピューター間で生の H.264 ビデオをストリーミングしています。送信コマンド ラインは次のようになります。
ffmpeg -i input.h264 -f mpegts udp:10.0.2.101:1234
そして、これが受信側です:
ffplay -f h264 -f mpegts udp://127.0.0.1:1234
問題は、受信側での再生品質が、送信側でソース ファイルを再生したときよりも大幅に劣っていることです。ネットワークは実際にはコンピューター上のシミュレートされたネットワーク (2 つの仮想マシン) であるため、パケット損失などはありません。
何を間違えたのでしょうか?
答え1
ビデオ ストリームを再エンコードしています。ビデオ コーデックを指定しない場合は、ffmpeg が自動的に選択します。この場合、デフォルト設定の MPEG-2 が選択されますが、これは確かに見栄えが悪くなります。
ビットストリームをコピーする予定の場合は、-c:v copy
送信コマンドにオプションを追加します。