保留として投票されたので書き直されました
私の目標は、トランジションなしで連続してビデオ ファイルを再生することです。私は 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で複数のファイルを再生できるプレーヤーがあれば、私もそれを取ります。
編集:
調査の結果、raspberry pi 用のビデオ プレーヤーは他にないようです (vlc ですが、何かを再生する代わりにすべての GPU を消費するだけです。他のプレーヤーは omxplayer に基づいているだけです)。ここで解決。
ビデオをプリロードする方法はありますか? たぶん、再生が終わる数秒前に次のビデオを開始するように再生を微調整しますか? それとも、omxplayer 自体を書き直す必要がありますか? どんな考えでも大歓迎です
編集2:
ループビデオを含む omxplayerの古い実験的編集を見つけました。現在、テストのためにコンパイルしようとしています。