在另一个视频流中嵌入视频



我可以并且如何实时嵌入两个视频,以便像vlc这样的软件像只嵌入一个视频一样跟随流,流式传输第一个视频直到定义的时间,流式播放第二个视频,然后继续第一个视频,直到完成?换句话说,如果我有这样的视频流:

<?php
$fp=fopen("video.mp4","rb");
while(!feof($fp)){
echo fread($fp,8096);
}
fclose($fp);
?>

如何在同一个流中"包含"第二个视频?类似:

<?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++中完成,那就没有问题了。有一些工具可以做到这一点吗?

视频文件格式没有#include指令或任何此类指令…

我能想出几个解决你问题的办法。一种是,如果您的播放器支持,则为其提供播放列表,而不是第一个媒体的URL。

另一个是,如果播放器不支持播放列表,我会使用它,从缝合在一起的两个视频创建一个新的媒体文件。如果你使用的媒体格式是MP4,你可能需要离线创建组合视频,因为实时创建MP4非常复杂(MP4文件的标题包含文件其余部分的非常详细的索引,所以大多数MP4编写器只有在写入所有视频数据后才写入标题)。但在离线时,这很简单,你可以使用像ffmpeg或VLC这样的工具来做到这一点。如果两个视频都由具有相似参数的同一编码器编码,则联合视频文件的创建速度非常快,因为您不需要重新编码(可以使用ffmpeg -vcodec copy -acodec copy)。以下是关于与ffmpeg连接的说明:ffmpeg常见问题

相关内容

  • 没有找到相关文章

最新更新