web-dev-qa-db-ja.com

mplayerを標準入力から再生するにはどうすればよいですか?

なぜこれが機能しないのですか?

cat /dev/video1 | mplayer -

それを機能させることができれば、「tee」を使用してmplayerとmencoderにフィードすると同時にビデオを再生および録画できます。

(/ dev/video1:input = 1:norm = NTSCからの)ライブビデオを再生し、同時にラグを発生させずに記録したい。

mplayerはビデオを正常に再生します(顕著なラグはありません)。

mencoderはそれをうまく記録します。

しかし、同時に両方にフィー​​ドできるように、/ dev/videoからの出力を「ティー」する方法を理解できません。 (私はそれをエンコードしてすぐにエンコードされたビデオを再生する方法を知っていますが、それはあまりにも多くの遅れをもたらします)。

Mplayerとmencoderがstdinから読み取る場合、 'tee'を使用してこれを解決できます。

どうすればできますか?

[ところで、ラグを追加しない限り、同時に再生と記録ができるすべてのソリューションに満足しています-私はmplayerに慣れていません。ただし、最初にエンコードしてから再生すると、遅れが生じます。]

7
nerdfever.com

Stdinから再生するときは、キャッシュをいくつか与える必要があります

cat /dev/video1 | mplayer -cache 1024 -

このキャッシュオプションがないと、「シークに失敗しました。線形ストリームで後方にシークできません」というエラーが発生します。

10
Mike Redrobe

Mplayerのマニュアルページによると、mplayer -はstdinから読み取る必要がありますが、mplayerがキーボード入力イベントをstdinから読み取らないようにするには、-noconsolecontrolsも指定する必要があります。

3
Kyle Jones

あなたがしたいことは単一のmplayerを使用して可能であるとは思わない。私は尋ねられたこの正確な質問を見つけ、明らかにこうして答えました:

抜粋: [MPlayer-users]同時にカメラのIPストリームを表示して記録しますか?

この作業は、同じmplayerプロセスで実行したいのですが。スレーブモードでファイルにストリームを書き込む方法はありますか?ドキュメントに適切なコマンドがまだ見つかりません。

出来ないと思います。 MPlayerは、ストリームを同時にまたはダンプできます。同時に両方をダンプすることはできません。

ただし、1つのタスクでストリームをダンプし、別のタスクで記録ストリームを再生することはできます。少なくとも、ネットワークトラフィックが2倍になることはありません。

その答えへの 元の質問 はこれでした:

同時に、ストリームを表示し、それをファイルに書き込む(つまり、記録する)可能性も必要です。私のポイントは、次のとおりです。これは同じプロセスです。

実際、私はスレーブモードでmplayerのプロセスを持っています。

    $ mplayer -slave -wid id_window  camera_address/

そして、記録する必要があるたびに、今回はスレーブではなく、新しいプロセスを開始します。

    $ mplayer -dumpvideo camera_address -dumpfile stream.mp4/

この作業は、同じmplayerプロセスで実行したいのですが。スレーブモードでファイルにストリームを書き込む方法はありますか?ドキュメントに適切なコマンドがまだ見つかりません。

Ffmpegを使用していますか?

ただのアイデアですが、このwikiの投稿をffmpegのWebサイトで見つけました 複数の出力を作成する について説明しています。おそらくあなたは分割することができます/dev/video1そして、mplayerで重複したストリームを利用しますか?

3
slm