在视频 HTML 标签中将多个文件作为一个文件播放



我正在尝试在一个html播放器中播放多个视频文件,就好像它是一个文件一样。

现在,我找到了一个脚本,可以在同一个播放器中一个接一个地播放视频:

<video id="videoPlayer" autoplay autobuffer controls></video>
<script>
var videoPlayer = document.getElementById('videoPlayer')
var vArray = [
"my-first-video.mp4",
"my-second-video.mp4",
"my-thrid-video.mp4",
]
videoPlayer.src = vArray[0]
i = 1
videoPlayer.onended = function(){
if (i < vArray.length) {
videoPlayer.src = vArray[i]
i++
}
}
</script>

问题是:

  • 每个视频之间都有一个小切口

  • 进度条不是所有视频的全局,而是每个视频的全局

关键是用户没有意识到付款人中播放了许多视频。

我怎样才能做到这一点?是否只能使用视频HTML标签?或者有视频播放器可以做到这一点吗?

谢谢

我找到了另一种实现我想做的事情的方法,我使用此模块直接将视频与 ffmpeg 合并在一起:https://github.com/ArsalanDotMe/VideoStitch

试试这个:' 这是一个 HTML 代码,您可以在其中一次在页面上添加多个视频。

<video width="400" controls autoplay> 
<source src="my-third-video.mp4" type="video/mp4">
</video>
<video width="400" controls autoplay> 
<source src="my-second-video.mp4" type="video/mp4">
</video>
<video width="400" controls> 
<source src="my-third-video.mp4" type="video/mp4">
</video>

您可以将文件作为临时或永久输出.mp4文件加入,然后在脚本上运行该视频。如果文件很小,则需要几秒钟。我已经加入了大文件,并没有花太长时间。

对于 ffmpeg,您可以从数组创建一个列表并发出命令

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4

列表必须在纯 txt 上采用这种格式(您可以使用数组在服务器中创建文件(:

file my-first-video.mp4
file my-second-video.mp4
file my-thrid-video.mp4

如果您不想创建列表,则可以直接从文件夹中的文件创建列表,它从第一个以"LS"列出的MP4开始,以找到的最后一个MP4结束。

ffmpeg $(for f in *.mp4 ; do echo -n "-i $f "; done) -filter_complex "$(i=0 ; for f in *.mp4 ; do echo -n "[$i:v] [$i:a] " ; i=$((i+1)) ; done && echo "concat=n=$i:v=1:a=1 [v] [a]")" -map "[v]" -map "[a]" output.mp4

然后,您可以使用该输出.mp4模拟一个唯一的文件,而无需用户弄清楚。希望它对你有用 问候。

相关内容

  • 没有找到相关文章

最新更新