LINUX.ORG.RU

Процесс в фоне

 , , ,


0

1

Нужно чтоб одновременно качалось и воспроизводилось, получилось такое реализовать таким образом

url[0]="http://.../....mp4"
file[0]="0.mp4"
url[1]="http://.../....mp4"
file[1]="1.mp4"
url[2]="http://.../....mp4"
file[2]="2.mp4"

for ((i=10; i > 0 ; i--)); do
	wget "${url[$i]}" -cqO "${file[$i]" | vlc --started-from-file --playlist-enqueu "${file[$i]"
done

Как сделать так чтоб vlc запустился в фоне и чтоб wget продолжал закачку следующих файлов не зависимо, запущен vlc или нет



Последнее исправление: dog_roulis (всего исправлений: 1)

пробовал запускать vlc вместе с циклом, wget работать тогда начинает нормально, но вот в консоле тогда не отображается выполнение скрипта, да и в vlc тогда не добавляются последующие файлы

dog_roulis
() автор топика

проще всего сделать два скрипта:

1. закачивает файлы 1,2,3,4

2. запускает первый скрипт, и играет 1,2,3,4

drBatty ★★
()
Ответ на: комментарий от dog_roulis

пробовал, но тогда wget начинает сразу все качать, а не по очереди как надо

ну сделай

for blah-hlah; do wget blah-blah; done &

for blah..... vlc; done

dikiy ★★☆☆☆
()

в цикле качать из массива ссылок, после добавлять в плейлист

for i in "${url[@]}"
do
   :
   wget качает $i
   vlc добавляет $i
done

system-root ★★★★★
()

можно и одним скриптом сделать, если ловить PID запущенного асинхронного процесса $!, и как закончится первый wget запускать второй wget. Если тебе не лень заморачиваться. Можно также сделать закачку в (асинхроннром субшелле)&

drBatty ★★
()
Ответ на: комментарий от system-root

мне надо чтоб одновременно и качался и воспроизводился, и если первый файл скачается, чтоб началась скачка второго файла, независимо просмотрен первый или еще нет

dog_roulis
() автор топика
Ответ на: комментарий от dog_roulis

ну так я ж написал уже. в одном цикле качаешь. Во втором смотришь. Первый цикл отправляешь в фон.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dog_roulis

почему не использовать сам vlc для сохранения?
или если важна производительность, то почему бы не добавить перед циклом 1 файл в пайп vlc, а потом уже качать в цикле и добавлять по очереди?
или факт просмотра видео тоже не важен?

system-root ★★★★★
()
Ответ на: комментарий от dikiy

качает как надо, сразу после первого качает второй и даже если vlc открыт, но тогда второй цикл не добавляет файлы в плейлист нормально, приходиться закрывать vlc и только тогда откроется следующий файл

dog_roulis
() автор топика
Ответ на: комментарий от dog_roulis

ну вариантов у тебя мало.
или добавить в плеер список урлов и он их будет крутить, а если нужно сохранить, ещё и сохранит. (зачем в этой связке вообще wget? только если у тебя всё это на слабом железе крутиться)
или сначала скачать, потом проверить что ты скачал именно медиа файл, потом добавить в плеер. иначе однажды через пайп ты ему передашь просто html (404, 505) страницу с ошибкой и всё сломается.
в общем любое использование wget в пайпе без обработки ошибок это плохо.
ну или 1 файл начать показывать через пайп, а остальные уже ждать пока скачаются/проверяться. но это если длительность ролика позволит дождаться.
в любом случае, лучше просто показывать стрим прямо в vlc без всяких wget. он уже сам обработает ошибку или закеширует, если с потоком проблемы.

system-root ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.