1

vlc のようなソフトウェアが 1 つのビデオのみのようにストリームを追跡し、定義された時間まで最初のビデオをストリーミングし、2 番目のビデオをストリーミングし、終了するまで最初のビデオを再開するように、2 つのビデオをリアルタイムで埋め込むことができます。つまり、次のようなビデオ ストリームがあるとします。

<?php

$fp=fopen("video.mp4","rb");

while(!feof($fp)){
echo fread($fp,8096);
}

fclose($fp);

?>

同じストリームに 2 番目のビデオを「含める」にはどうすればよいですか? お気に入り:

<?php

$fp=fopen("video.mp4","rb");
$fp2=fopen("video2.mp4","rb");

while(!feof($fp)){
if($condition==1){
echo fread($fp2,8096);
}
else echo fread($fp,8096);
}

fclose($fp);
fclose($fp2);
?>

私は単純な php でそれを行いましたが、C や C++ で行わなければならない場合でも問題はありません。そして、それを行うためのツールはありますか?

4

1 に答える 1

0

#includeビデオファイル形式には、ディレクティブやこの種のものはありません...

あなたの問題に対するいくつかの解決策を考えることができます。1 つは、プレーヤーでサポートされている場合、最初のメディアの URL ではなくプレイリストを提供することです。

プレーヤーがプレイリストをサポートしていない場合に使用するもう 1 つの方法は、2 つのビデオをつなぎ合わせて新しいメディア ファイルを作成することです。使用しているメディア形式が MP4 の場合、リアルタイムでの MP4 の作成は非常に複雑であるため、結合されたビデオをオフラインで作成する必要があるでしょう (MP4 ファイルのヘッダーには、ファイルの残りの部分の非常に詳細なインデックスが含まれています。そのため、ほとんどの MP4 ライターは、すべてのビデオ データを書き込んだ後にのみヘッダーを書き込みます)。しかし、オフラインでは非常に簡単です。ffmpeg や VLC などのツールを使用してそれを行うことができます。両方のビデオが同様のパラメーターを使用して同じエンコーダーによってコーディングされている場合、再エンコードする必要がないため、ジョイント ビデオ ファイルの作成は非常に高速です ( を使用できますffmpeg -vcodec copy -acodec copy)。ffmpeg との連結の手順は次のとおりです: ffmpeg FAQ

于 2012-11-18T07:25:30.443 に答える