私はUstreamサイトの別のバージョンからビデオをダウンロードしようとしています。このサイトは、明らかにDRM保護に使用されています。実際には、このサイトからのログインを経ずにこのビデオを見ることはできません。 ビデオシステムは、ustream(同じリンク)で同じものを使用する必要があります。つまり、x秒ごとに異なるflvチャンクを呼び出し、ストリームにマージします(rtmpサービスに似ていますが、このプロトコルは使用しません)。ストリームサイトからの.flvチャンク
私はこのビデオを構成するすべての.flvチャンクをダウンロードすることができましたが、それらを1つのファイルにマージする際に問題がありました。まず最初に、これらのflvファイルにはオーディオ/ビデオのラグ/問題がありますが、このビデオをダウンロードする方法は他にありませんので、ラグについては不平を言っていません。
実際の問題は、すべてのflvファイルが通常のサイズを持っているにもかかわらず、継続時間が増加していることです。動画の再生時間は約6秒ですので、最初のチャンクは6秒、2番目のチャンクは12秒です(残りの6個は「破損しています」)。私は(ffmpegまたはビデオ結合ソフトウェアで)これらのファイル(約600-700、1時間15分の合計時間)をマージしようとすると、最初の2つのセクションだけが表示され、その後何も見えません。 (最初の2つのチャンクをマージしようとすると、ファイルの長さは18秒、最初の12のファイルは見えます;最初の3つのチャンクをマージしようとすると、ファイルの長さは36秒になります。最初の12秒間)
誰でも知っていますか?
スタックオーバーフローはプログラミングに関する質問のみのため、コードを表示する必要があります。 – LordNeckbeard
あなたが質問を読んだのかどうかはわかりませんが、表示するコードはありません。私が尋ねたのは、flvチャンクを類似した/同一の環境(後続するすべてのチャンクが前のチャンクの持続時間をもたらす)でマージする方法でした。マージコマンドはデフォルトです。私の問題はチャンクの実際の時間を取得することです。私は.flvファイルごとにトリミングすることを考えましたが、700個のファイルがあり、最後のものから1時間マイナス6秒をトリミングする必要があります。 – Iztooi
@Iztooiはffmpeg "merge"コマンドを少なくとも表示します。たぶんそれは間違って使用されています。たとえば、2〜3つのflvをどのようにマージしますか? 2つの連続したチャンクの例題へのリンクがありますか?各チャンクが別々のflvヘッダーを持っているか、そのタイムスタンプがどのように見えるかを確認する必要があります。基本的には、チャンク1が6秒のタイムスタンプで終了する場合、チャンク2はゼロのタイムスタンプを持つ最初のフレームを持つことができません。そのような場合は、チャンク2のflvヘッダーを削除し、各フレームのタイムスタンプを編集して6秒以上にする必要があります。あなたのコーディング言語はバイト編集を処理しますか?あるいは、ffmpegの 'genpts'コマンドを試してみてください。 –