元のフレームレートで ffmpeg を使用してファイルをネットワークにストリーミングしたい。そのため、生成されたUDPストリームを [〜#〜] vlc [〜#〜] などのレシーバークライアントを使用して再生できます。私はこのコマンドを使用しました:
ffmpeg -i "myfile.mpg" -sameq -re -f mpegts "udp://127.0.0.1:2000"
このコマンドを使用すると、ffmpegは非常に高速でファイルのストリーミングを開始します。約30分の長さのファイルのストリーミングが約40秒後に終了するように。元のレートでファイルを見たいのですが。また、ビデオの速度を制御して、再生速度を速くしたり遅くしたりしたいと思います。これを行うためのオプションはありますか?ありがとうございました。
-re
は入力オプションとして使用する必要があります。そうしないと、おそらく無視されます。基本的な構文の一般化は次のとおりです。
ffmpeg [input options] -i input [output options] output
使用禁止 -sameq
。詳細な説明については、 sameqは「同じ品質」を意味するものではありません を参照してください。
再エンコードするのではなく、単にストリームをコピーしてみましたか?追加 -map 0 -codec copy
出力オプションとして。
ビデオ速度の変更については、setpts
マルチメディアフィルターを試すことができます。このフィルターを使用するには、再エンコードする必要があることに注意してください。ドキュメントからの例:
Apply fast motion effect: -filter:v setpts=0.5*PTS
Apply slow motion effect: -filter:v setpts=2.0*PTS
オーディオについては、asetpts
またはatempo
フィルターを参照してください。
答えは、オプション-re
を使用することです。入力オプション(-i
の前)とともに配置する必要があります。
-re(入力)
ネイティブフレームレートで入力を読み取ります。主にグラブデバイスまたはライブ入力ストリームをシミュレートするために使用されます(ファイルから読み取る場合など)。実際のグラブデバイスまたはライブ入力ストリーム(パケット損失を引き起こす可能性がある場合)では使用しないでください。デフォルトでは、ffmpegは入力をできるだけ速く読み取ろうとします。このオプションは、入力の読み取りを遅くして、入力のネイティブフレームレートにします。リアルタイム出力(ライブストリーミングなど)に役立ちます。