воспроизводить mp3-файл сразу после его загрузки
Как объединить эти две разные команды в один скрипт:
$ wget http://mymusic.store.com/musicfoo.mp3 #file gets saved as musicfoo.mp3 $ mplayer musicfoo.mp3
wget пытается сохранить файл на диск с именем / расширением по умолчанию файла (как в Интернете) … в моем mp3-файле … mplayer использует этот файл в качестве аргумента для его воспроизведения.
- Почему я продолжаю получать файл wget-log в ~ на Arch Linux?
- wget возвращает html-страницу вместо исходного файла
- синтаксическая ошибка в условном выражении при выполнении сценария оболочки?
- как загрузить личную электронную таблицу google из командной строки linux?
- Bash Script - Wget Graphical Download Progress
Любая идея, как я могу объединить это с одним сценарием?
- wget для получения списка файлов
- Найти рекурсивный поиск Grep
- Как отправить файл на FTP-сервер, который не приведет к успешному завершению соединения?
- используя wget для загрузки всех аудиофайлов (более 100 000 страниц на wikia)
- Как отключить сжатие gzip с помощью wget?
- wget resume download from dropbox дает не может написать ошибку
- Могу ли я захватить и отправить запросы GET с помощью wget?
- wget с проверкой 304
4 Solutions collect form web for “воспроизводить mp3-файл сразу после его загрузки”
Воспроизвести файл напрямую
Вам не нужно даже загружать эти файлы, прежде чем воспроизводить их с помощью mplayer
. На странице mplayer
man:
выдержка
mplayer [options] [file|URL|playlist|-]
Таким образом, mplayer может напрямую воспроизводить URL-адреса.
пример
$ mplayer http://mymusic.store.com/musicfoo.mp3
Представление
Вам, вероятно, придется настроить значения кеша, чтобы заставить mplayer
плавно воспроизводить ваш контент. В mplayer
есть несколько переключателей, которые позволяют это делать.
выдержка из mplayer man page
-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 -
curl 1st, затем mplayer
Другой способ – загрузить файл, а затем воспроизвести его. Вы можете использовать функцию Bash для ее переноса, поскольку теперь она становится двухэтапным процессом, когда файл полностью загружается первым, а затем воспроизводится потом.
пример
$ function smplayer() { wget $@ && mplayer $(basename $@); }
Затем, чтобы выполнить загрузку и воспроизведение, вы должны запустить такую функцию:
$ smplayer http://mymusic.store.com/musicfoo.mp3
Пытаться:
wget http://mymusic.store.com/musicfoo.mp3 && mplayer musicfoo.mp3
&&
означает «после успешного завершения левой команды». Это предполагает, что команда на левой стороне не вилка или использование нестандартных значений статуса выхода . Я сомневаюсь, что wget делает последнее, и до тех пор, пока вы не используете ключ -b
, он тоже не должен делать первый.
Попробуй это :
mkdir /tmp/download_$$ cd /tmp/download_$$ wget http://mymusic.store.com/musicfoo.mp3 mplayer *
У меня есть решение:
fpath=$(basename "$1") wget $1 mplayer $fpath
Вышеупомянутая проблема заключается в том, что wget присваивает имя файла загруженному файлу (добавляет конец .1
к его концу), если имя файла уже существует. Следовательно, значение fpath не является правильным файлом, так сказать.