問題タブ [mplayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
audio - MPlayer: 音の高さと速さを個別に変更
MPlayer スレーブ モード プロトコルの実験に時間を費やしました。カスタム アプリケーションでは、ピッチを変更するコントロールと速度を変更するコントロールの 2 つがあります。
これは、scaletempoフィルターと MPlayer API の *speed_set* / *speed_mult* コマンドを使用して簡単に実装できます。
ただし、ピッチとスピードを個別に変更しようとすると問題が発生します。例を挙げると、ピッチを 2 半音または 3 半音上げながら、速度をたとえば 20% 遅くしたいと考えています。
2 つの scaletempo フィルターを追加してこれを実行しようとしましたが、成功しませんでした:
このメソッドは、元のピッチを維持しながら速度を変更します。
MPlayer またはその他のメディア プレーヤーでこれを行うための他のソリューションはありますか?
前もって感謝します!
mplayer - mplayer スレーブ: 再生を開始する前に音量を設定します
これは特定のプログラム (mplayer バックエンド) に関するものであることはわかっています。ただし、フロントエンドのプログラミングに使用されるため、スタック オーバーフローのトピックとして引き続き考慮されることを願っています。
異なるオーディオ ストリーム間でフェードするために使用される 2 つの mplayer スレーブ インスタンスを実行したいと考えています (webradio; チャンネルをスムーズに変更します)。これを行うには、mplayer の「ソフトウェア ボリューム」を設定して、サウンド カードの PCM 出力チャネルに影響を与えないようにしますが、ソフトウェア ボリューム ミキサーを挿入して音量を調整します。
ただし、次の問題が発生します。
次のコマンドで mplayer を起動します (コマンドラインでテストできます)。
次のコマンドを mplayer に送信します。
(短時間) 100% のボリュームでファイルの再生を開始し、その後 0% のボリュームにジャンプします。2 つのコマンドを入れ替えると、mplayer は音量を調整できないことを通知します。
明らかに、オーディオ フィルタがまだロードされていないか、オーディオ出力がまだセットアップされていないかのようなものなので、mplayer は存在しないオーディオ出力のボリュームを変更できません。
ボリュームを 0% に設定し、ファイルをロードしてからボリュームを上げて再生中にフェードインできるように、事前に mplayer にすべてを初期化させることはできますか?
一部のファイル (サイレント ダミー ファイルなど) を再生した後に音量を設定できるかどうかは、既に確認済みです。mplayer で同じエラーが発生します。今のところ、私が考えることができる唯一のオプションは、そのようなダミー ファイルを開始し、音量を調整し、ダミー ファイルを停止し、再生する正しいファイルをロードすることです。設定した音量で開始します。しかし、これが最良の選択肢であるとは信じられません。
mplayer - MPlayerスレーブモードで現在再生中のファイルを取得する
問題:MPlayerプレイリストで現在再生中のファイルを確実に取得する方法が見つかりません。
これが私がどこまで到達したかです。この動作するashスクリプトは、現在のプレイリストへのパスを含むテキストファイルを監視します。ファイルを更新すると、スクリプトはMPlayerの古いインスタンスを閉じ、新しいプレイリストで新しいインスタンスを開きます。
私の当初の計画は、「-identify」フラグを使用してログファイルを解析することでした。これは、ログファイルが大きくなりすぎないように切り捨てる必要があるまで、実際には非常にうまく機能します。切り捨てスクリプトが実行されるとすぐに、MPlayerはログファイルへの書き込みを停止します。
検索して検索しましたが、現在再生中のファイルを取得する他の方法を見つけることができませんでした。
出力を別の名前付きパイプにパイプして監視しようとしましたが、数秒間しか機能せず、MPlayerが完全にフリーズします。
また、(ashの代わりに)bashを使用して、出力を次のような関数にパイプ処理しようとしましたが、同じフリーズの問題が発生します。
私はここで非常に明白な何かを見逃しているのではないかと思うので、正しい方向への助け、アイデア、ポイントをいただければ幸いです。
飼料
bash - Bash でボリュームを段階的に増やす
私は目覚まし時計を作っていて、基本的に音量ゼロから始めて、2秒ごとに音を1つの「ノッチ」/値まで上げて、それ以上増加しない特定の事前定義されたポイントまで上げたいと考えていました。
今のところ私は使ってmplayer
います(ラジオ局なので運営していますmplayer http://66.225.205.192:80
)が、何を使っても構いません(VLCなど))
私の完全なコードは
python - Python: スレーブ モードで mplayer にコマンドを送信する
次のようにスレーブモードで実行しているときに、パイプ経由で mplayer にコマンドを送信しようとしています:
しかし、アウトプットは何もありませんでした。
この質問から例を挙げました。
ターミナルで同じ mplayer コマンドを実行すると、正常に動作します。ここで何が欠けていますか?
アップデート:
cmd を「get_meta_artist」から「get_meta_artist\n」に変更して、パイプにも改行が送信されるようにしましたが、出力には何も表示されませんでした。
更新 2:
コマンドを「\npause\n」に変更すると、音楽が一時停止しました。つまり、標準入力を介してコマンドを送信することは機能しました。これは、「\nget_meta_artist\n」コマンドの出力文字列が期待どおりにパイプされなかったことを意味します....
linux - 複数の fifo を使用した Linux の tee コマンド。fifoブロックティー
いくつかの rtmp ストリームを再生および記録する 1 つのプログラムを開発しようとしています。プログラムは Qt で開発されています。
rtmpdump と mplayer を使用しています。どちらも別のプロセスで実行されているため、fifo を使用してストリームを rtmpdump から mplayer に渡しています。mplayer はユーザーが制御する必要があるため、別のプロセスが必要です。したがって、mplayer はスレーブ モードで実行されます。
これは、ストリームを再生するために正常に機能しています。
今、ストリームを別のファイルに記録したいと思います。私はそれを行うために mplayer を使用できることを知っています。ただし、単一の mplayer を使用することはできません。これは、再生または録音のいずれかしかサポートしていないためです。したがって、tee コマンドを使用してストリームを分割し、2 つの mplayer プロセス (1 つは記録用、もう 1 つは再生用) を使用することを考えました。
今、流れはこのように流れています
1 つの mplayer が fifo_for_playing を読み取り、別の mplayer が fifo_for_recording を読み取ります。
ここでの問題は、記録するはずの mplayer がユーザーが記録ボタンを押したときにのみ開始されるため、 fifo_for_recording が開かれていないためティーをブロックすることです。再生も開始されません。
誰かがこれを達成するための解決策またはより良い方法を提案できますか? 私がやろうとしているのは、ブロックされていない fifo でティーを作ることです。そのため、1 つの fifo が読み取り用に開かれていない場合でも、ティーがブロックされることはありません。
fullscreen - フルスクリーンでgifアニメーションを再生するmplayer?
私は mplayer に精通しておらず、raspbian を実行している RPi で無限ループの gif アニメーションをフルスクリーンで表示したいだけの場合、たくさんのオプションがジャングルのように思えます。
誰か助けてくれませんか?
linux - mplayer ウィンドウを開いたままにし、シーケンシャル ビデオ ファイルをチェーン化する
特定のムービー ファイルから一連のイベントを解析し、フラグ-ss
と-endpos
フラグを使用してファイルの特定の部分を再生するスクリプトがあります。利用可能なファイルが 1 つあるとします。私がやりたいのは、次のような連鎖コマンドを実行することです。
mplayer vidfile.mp4 -ss 110 -endpos 5 -fs;mplayer vidfile.mp4 -ss 130 -endpos 9
アイデアは、ビデオの両方のセクションをフルスクリーンで順番に再生することです。ただし、デスクトップに一時的に表示されるため、2 つのビデオ間に大きなちらつきがあります。(Ubuntu 12.04)
どうすれば mplayer を開いたままにしておくか、またはスイッチの不快感を少なくするにはどうすればよいですか? 30 個のクリップでこれを行うと、誰かが大きな頭痛の種になるでしょう。ムービーをカットしてまとめるスクリプトを書かずに、この方法で実行できるかどうかを確認したいと思います (これは悪夢のように聞こえますが、アイデアがあれば、コメントにそれらを投稿してください)。
python - Python を使用してビデオ ファイルを一連のパーツに分割する
次の python コードを使用して、FLV ビデオ ファイルを一連のパーツに分割します。終了すると、最初の部分のビデオのみを再生でき、他の部分は破損しています。なぜ、ビデオ ファイルを分割する正しい方法があるのでしょうか。
ここのコード形式はむずかしいです ここで形式化されたコードを見てください
linux - Web 再生用のチェーン ビデオ (mplayer のフラッシュ/html5 に相当しますか?)
ビデオの大規模なリポジトリと、それらを説明/整理するための MySQL データベース (およびビデオに関するメタデータ) があります。私が現在持っているのは、system()
呼び出しを使用して次のようなことを行うことができるphpフロントエンドです。
これにより、同じビデオ (または複数のビデオ) のセグメントを連鎖的に再生できます。これはうまくいきます。
ただし、明らかに、これはサーバー上にいる場合にのみ機能します。このファイルを Web 経由でクライアントに提供すると、うまくいきません。
というフォルダにすべてのビデオがあると仮定すると/home/videos
、Flash コンテナ、HTML5 コンテナ、またはその他の方法を使用して同様の呼び出しを行う簡単な方法はありますか? (stdout を何かにリダイレクトしていますか?)
編集: 問題がある場合、ビデオはすべて h.264/mp4 形式であり、変換する気はありません。