воспроизводить mp3-файл сразу после его загрузки

Как объединить эти две разные команды в один скрипт:

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

wget пытается сохранить файл на диск с именем / расширением по умолчанию файла (как в Интернете) … в моем mp3-файле … mplayer использует этот файл в качестве аргумента для его воспроизведения.

Любая идея, как я могу объединить это с одним сценарием?

  • Почему wget не может загружать страницу как root?
  • Почему я не могу передать файл через wget (FTP) с помощью функции exec () в PHP?
  • Разрешить имя файла с удаленного URL-адреса без загрузки файла
  • Почему команда curl использует URL-адреса с параметрами ввода
  • Как Wget изображения из CSV, добавлять URL-адрес и имена файлов из полей?
  • Как сообщить wget для загрузки файлов с именами, закодированными url?
  • Как загрузить файл с FTP-сервера, а затем автоматически удалить его с сервера после завершения загрузки?
  • wget, чтобы получить все файлы в каталоге, возвращает index.html
  • 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 не является правильным файлом, так сказать.

    Interesting Posts

    Как grep рекурсивно в порядке последнего модифицированного времени?

    Используйте logrotate для хранения 7 ежедневных, 4 еженедельных и 12-летних резервных копий db

    Аргу слишком длинная ошибка при использовании find

    Как установить Python 3.x на Debian?

    Как сбросить очередь принтера, совместно используемую Samba?

    Разрешает путаницу при выполнении двоичных файлов через скрипт

    UNIX: нужно заменить последнюю строку на файле, а также удалить лишнюю пустую строку в конце

    Список допустимых записей в конфигурации openbox (клавиатура)

    Urxvt медленно рисует линии

    как изменить разрешение файла / proc / self / pagemap.?

    Установка по умолчанию Solaris (инструменты пользователя)

    Подробный вывод ./configure не является подробным

    не удалось создать файл ключа. Ошибка установки Ubuntu

    linux mtp разрешает только читать файл

    Если у меня есть два жестких диска, может ли жесткий диск 1 быть / dev / sda на одной загрузке, будучи / dev / sdb на другой загрузке?

    Linux и Unix - лучшая ОС в мире.