因投票为搁置而改写
我的目标是在没有过渡的情况下播放视频文件。由于我正在使用 Raspberry Pi,因此我似乎被迫坚持使用 omxplayer 来播放视频文件。
我在 node.js 中编写它,因为异步编程对于应用程序的其他非相关部分很有用。
我的问题是,在每个视频之间,屏幕在播放下一个视频之前显示控制台的时间很短。我正在寻找任何方法来无缝过渡。
对于那些想要重现这一点的人,这里的代码:
var Playlist=[],
PIndice=0,
PATH='';
DOWNLOAD_DIR='';
exec=require('child_process').exec,
execF=require('child_process').execFile;
function start(){
Playlist.push('video1.mp4');
Playlist.push('video2.mp4');
PATH=process.argv[1].substr(0, process.argv[1].indexOf('app.js', 0));
DOWNLOAD_DIR=PATH+'downloads/';
play(Playlist[0]);
}
function play(file){
file=DOWNLOAD_DIR+file;
execF(PATH+'play.sh', [file], function(error, stdout, stderr){
if (err){throw err;}
if (stdout){console.log(stdout);}
if (stderr){console.log(stderr);}
if(PIndice < Playlist.length -1){
PIndice=PIndice+1;
}else{
PIndice=0;
}
play(Playlist[PIndice]);
});
}
start();
你也需要这个简单的脚本,在 play.sh 中:
#!/bin/sh
omxplayer $1 > /dev/null
app 文件夹如下所示:
folder/
-app.js
-play.sh
-download/
-video1.mp4
-video2.mp4
然后您通过键入(在命令行中)启动应用程序
node app.js
omxplayer 不接受播放多个文件,所以我每次都需要启动它。如果有一个播放器可以在 RPi 上播放多个文件,我也会接受。
编辑:
经过研究,强烈似乎没有其他的树莓派视频播放器(是的,vlc,但它只是吃掉所有的gpu而不是播放任何东西,其他播放器只是基于omxplayer),所以我无法搜索解决方案在这里。
有没有办法预加载视频?也许调整播放以在播放结束前一秒开始播放以下视频?还是我需要重写 omxplayer 本身?任何想法都值得赞赏
编辑2:
找到了一个带有循环视频的 omxplayer 的旧实验编辑,我目前正在尝试编译它以进行测试。