これら2つのコマンドを1つのスクリプトに結合するにはどうすればよいですか?
$ wget http://mymusic.store.com/musicfoo.mp3
#file gets saved as musicfoo.mp3
$ mplayer musicfoo.mp3
wgetはファイルのデフォルト名/拡張子(インターネットなど)を使用してファイルをディスクに保存しようとします。私の場合はmp3ファイルです。 mplayerはこのファイルをパラメータとして再生します。
これをスクリプトに統合する方法についてのアイデアはありますか?
ベストアンサー1
ファイルを直接再生
これらのファイルを再生する前にダウンロードする必要はありませんmplayer
。mplayer
マニュアルページから:
抜粋
mplayer [options] [file|URL|playlist|-]
したがって、mplayerはURLを直接再生できます。
はい
$ mplayer http://mymusic.store.com/musicfoo.mp3
パフォーマンス
コンテンツをシームレスに再生するには、キャッシュ値を調整する必要がありますmplayer
。mplayer
これを達成するためのスイッチがあります。
mplayerのマニュアルページから
-cache <kBytes>
This option specifies how much memory (in kBytes) to use
when precaching a file or URL. Especially useful on slow media.
-cache-min <percentage>
Playback will start when the cache has been filled up to
<percentage> of the total.
だから、おそらくこれらの値を使用して状況に応じてシームレスな再生を得ることができます。
$ mplayer -cache 8000 -cache-min 30 http://mymusic.store.com/musicfoo.mp3
ダウンロードとプレイ
別の回答で議論された別の方法は、wget
ダウンロードを使用してファイルを再生することです。このアプローチの本質的な問題は、ファイルのダウンロードが完了した後にファイル名を再生することです。
mplayerへのカールパイプの接続
実際、このアプローチには2つの技術があります。最初は、またはwget
を使用してダウンロードを開始し、curl
データをmplayer
。
はい
$ wget http://mymusic.store.com/musicfoo.mp3 -O - | mplayer -
以前と同様に、ここからダウンロードをキャッシュすることもできます。
$ wget http://mymusic.store.com/musicfoo.mp3 -O - | mplayer -cache 8192 -
まずカールをしてからmplayerを使います。
別の方法は、ファイルをダウンロードして再生することです。これで、Bash機能を使用してそれをラップできます。これで、ファイルを完全にダウンロードして再生する2段階のプロセスになります。
はい
$ function smplayer() { wget $@ && mplayer $(basename $@); }
その後、ダウンロードしてプレイするには、次の機能を実行する必要があります。
$ smplayer http://mymusic.store.com/musicfoo.mp3