1

保留として投票されたので書き直されました

私の目標は、トランジションなしで連続してビデオ ファイルを再生することです。私は 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の古い実験的編集を見つけました。現在、テストのためにコンパイルしようとしています。

4

4 に答える 4

1

It is quite hard to make general statements about the performance of an application without knowing too much about it, so I would suggest that you profile your application to see where the performance bottle necks are. Node has build in support for profiling. Just run with an additional option.

node --prof your_file.js

From the sound of it you might want to preload the next video sooner to avoid the pause the user is seeing

于 2013-09-05T10:47:04.720 に答える
1

github の問題レポートで、omxplayer の修正バージョンを見つけました。これは、最後の 6 回の更新とビデオ ファイルのいくつかの厳しい要件を犠牲にして、各ファイル間の遷移なしで複数のファイルをループで再生する可能性を与えます。

それは私のアルゴリズムの一部を変更しますが、少なくとも私はプロジェクトの要件に戻ります.

それを検索できる人のために: https://github.com/huceke/omxplayer/issues/16、pasky コメントを確認してください。そのうちの 1 つにバイナリへのリンクがあります。

于 2013-09-06T16:01:27.100 に答える
0

Node.js Web サーバーのベンチマーク ツールであるFlodを確認してください

于 2013-09-05T13:38:44.400 に答える