0

ファイル(この場合はビデオ)のコンテンツをビデオ要素にストリーミングするストリーミングサービスを作成しようとしています。

この目的のために、ダウンロードしてインストールvideogularし、現在セットアップしようとしていますが、その方法はわかりません。

ビデオをロードするための videogular のドキュメントによると、次のような構文が必要になります。

sources: [
    {src: $sce.trustAsResourceUrl(myMp4Resource), type: "video/mp4"}
]

ストリーミングせずにコンテンツをロードしたい場合に適しています。

しかし、たとえば、ポート 8105 で実行されているノード サーバーがあり、収集したいファイルの ID が 1 であるとすると、結果は次のようになります。

sources: [
    {src: $sce.trustAsResourceUrl('http://localhost:8105/loadvideo/1'), type: "video/mp4"}
]

ただし、そうしようとすると、リソースが実際のリソースではないことがわかります。

私の質問は、どのようにビデオ コンテンツにストリーミングするか (できれば videogular を使用) で、これを可能にした例を知っている人はいますか?

サーバー側コード

さて、私の最初のアイデア (そして、これが上記のコードの変更であることはわかっています) は、次のrouteat パスを作成することでした:

    router.route('/retrieveFile')
    .post(function (request, response) {
        var path = '../' + request.body.data;
        var file = fs.createReadStream(path);
        file.pipe(response);
    });

そして、ファイルの出力をパイプしました。

次に、これを使用してファイルをストリーミングします

4

2 に答える 2

1

ファイルをファイルとして使用できるようにするには、パイプする前に適切なヘッダーを設定する必要があります

そして、ファイルをロードするには、このコードをルーターに配置し、使用している場所に、またはpostを使用する強い理由がない場合getall

クライアントがストリームの途中で切断することを決定した場合、送信を終了できるようにすることもできます

またはres.download、ストリームの代わりに使用することもできます。この場合、適切なヘッダーと中断が自動的に処理されます。

したがって、コード全体は次のようになります。

router.route('/path/to/video.mp4')
.all(function(req, res){
    res.header('content-disposition', 'filename="video.mp4"')
    var stream = fs.createReadStream('./resources/video.mp4');
    stream.pipe(res);
    require('on-finished')(res, stream.abort.bind(stream));

    // or simply
    res.download(fs.readSync('/path'))
});

次にhttp://localhost:8000/path/to/video.mp4、ビデオをブラウザに直接ロードするか、再生できる場合は再生するか、単にダウンロードを提案するかのいずれかを使用できます。または、この URL をvidegular

sources: [ {src: $sce.trustAsResourceUrl('http://localhost:8000/path/to/video.mp4'), type: "video/mp4"} ]
于 2015-06-01T17:11:48.153 に答える
1

ハードドライブにビデオ ファイルがあり、それらすべてにファイル名を付けて提供したい場合は、他のリソースと同様にExpress Staticを使用して提供する必要があります。

通常のリソースと区別するために、パス プレフィックス「/videos」を追加できます。

app.use('/videos', express.static('videos'));

次に、ビデオ ファイル./videos/myvid.mp4http://localhost:8000/videos/myvid.mp4として利用可能になります。

于 2015-06-02T13:35:33.263 に答える