2017-11-08 10 views
0

ffmpeg -ss $TIME -i $URL -frames:v 1 -filter:v $FILTER file.jpg -v traceを実行してリモートWebサイトからビデオのスクリーンショットを取得すると、通常は非常に高速に実行されます。しかし、別のウェブサイトからの動画は、実行するのにずっと時間がかかります。ffmpegでこれらの特定の動画にアクセスするのがいつもより遅いのはなぜですか?

特定のウェブサイトのすべての動画は非常に遅いです。私はffmpegがほぼ即座に(0.5秒)動作するウェブサイトと、それが非常にゆっくりと(15秒)動作するウェブサイトから、3〜4MBの2つのビデオを比較しました。

ここでは、スロービデオhttp://pastebin.pl/view/raw/4df9fb06のトレース出力を示します。そして、ここに高速ビデオhttp://pastebin.pl/view/raw/4b590932のトレース出力があります。

1つのビデオが他のすべてのビデオと比べて非常に遅い理由を特定できますか?私が走ったffmpegコマンドは、上のものと両方のビデオのものです。どうすればこれをスピードアップできますか?

低速ビデオのダウンロード速度が速いビデオよりも数秒遅いですが、ffmpegコマンドで2つのファイルの間に大きな違いがあるはずです。

+0

http範囲要求をサポートしていない可能性がありますので、完全な動画をダウンロードする必要がありますか? – rogerdpack

答えて

2

「速いビデオ」は、そのインデックスを先頭にした通常のMP4です。 「低速ビデオ」は、DASHのためにフォーマットされた断片化されたMP4であり、サンプルインデックスがファイル全体に分散されています。あなたが探しているサンプルを見つけるために、ffmpegはインデックスを解析しなければならないので、ファイル全体ではないにせよ、もっと多くをダウンロードしなければならない。

+0

ブラウザの「slow video」mp4ファイルのURLにアクセスすると、再生を開始するまでに時間がかかります。私が "速いビデオ" URLでそれをするならば、それはほとんどすぐにストリーミングを開始します。 Chromeブラウザの[ネットワーク]タブでは、高速動画にストリーミングを開始する206 HTTPリクエストが表示されるため、応答が大きくなり、動画の再生が開始されます。しかし、遅いビデオの場合、何かが再生を開始する前に、何百もの小さい206のHTTPリクエスト(例えば、Range:bytes = 57540608-62610843'、続いてRange:bytes = 57769984-62610843)を行います。これがDASHの仕組みですか、それとも何かスピードアップできるのでしょうか? – user779159

+0

私は、ブラウザがDASHをどのように扱うかの詳細は分かっていませんが、断片化されたファイルの仕組みを期待しています。 – Mulvya

関連する問題