因投票为搁置而改写
我的目标是在没有过渡的情况下播放视频文件。由于我正在使用 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 的旧实验编辑,我目前正在尝试编译它以进行测试。