mp3ファイルをダウンロードしてすぐに再生

mp3ファイルをダウンロードしてすぐに再生

これら2つのコマンドを1つのスクリプトに結合するにはどうすればよいですか?

$ wget http://mymusic.store.com/musicfoo.mp3
#file gets saved as musicfoo.mp3
$ mplayer musicfoo.mp3

wgetはファイルのデフォルト名/拡張子(インターネットなど)を使用してファイルをディスクに保存しようとします。私の場合はmp3ファイルです。 mplayerはこのファイルをパラメータとして再生します。

これをスクリプトに統合する方法についてのアイデアはありますか?

答え1

ファイルを直接再生

これらのファイルを再生する前にダウンロードする必要はありませんmplayermplayerマニュアルページから:

抜粋

  mplayer [options] [file|URL|playlist|-]

したがって、mplayerはURLを直接再生できます。

はい

$ mplayer http://mymusic.store.com/musicfoo.mp3

パフォーマンス

コンテンツをシームレスに再生するには、キャッシュ値を調整する必要がありますmplayermplayerこれを達成するためのスイッチがあります。

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

答え2

努力する:

wget http://mymusic.store.com/musicfoo.mp3 && mplayer musicfoo.mp3

&&「左のコマンドが実行されると、正常にDone". これは、左のコマンドが非標準を分岐または使用しなかったと仮定します。終了ステータス価値。私はwgetが後者を実行しているかどうか疑い、そのスイッチを使用しない限り前者も-b実行しないでください。

答え3

この試み:

mkdir /tmp/download_$$
cd /tmp/download_$$
wget http://mymusic.store.com/musicfoo.mp3
mplayer *

答え4

解決策があります。

fpath=$(basename "$1")
wget $1
mplayer $fpath

上記の問題は、.1ファイル名がすでに存在する場合、wgetがダウンロードしたファイルにファイル名を割り当てる(最後に追加)ということです。したがって、fpathの値が正しいファイルではないと言うことができます。

関連情報