Сохранить видео, воспроизводимое в mpv --ytdl, в файл во время воспроизведения

3960
PawkyPenguin

Я хотел бы иметь возможность воспроизводить и сохранять видео с помощью mpv --ytdl. Как мне это сделать? Что особенно важно, буфер тоже сохраняется.

По сути, я хотел бы воспроизвести видео с YouTube, затем выйти из mpv и по-прежнему иметь возможность смотреть видео до момента его загрузки - поэтому мне также необходимо сохранить буферы в файл.

Я уже пробовал использовать youtube-dl -o - для потоковой передачи видео на стандартный вывод, а затем передать его с помощью mpv, т.е.

youtube-dl -o - | mpv - 

(с мыслью, что я мог бы использовать tee, чтобы разделить поток и просто записать его в файл) - однако, есть проблема в том, что я не могу использовать mpv для навигации по видео - это просто фиксированный поток, поступающий из stdin после все. У меня была другая идея - использовать опцию -o в mpv, чтобы указать выходной файл. Это не сохраняет внутренний буфер, как бы то ни было.

1

3 ответа на вопрос

2
Martijn

Другой вариант, который все еще очень экспериментален, - использовать собственный mpv --record-file:

mpv --record-file=video.mkv https://www.youtube.com/watch?v=… 

У меня был ограниченный успех с этим. Поскольку исходные файлы для захвата youtube-dl должны совпадать с расширением файла, которое вы указываете для файла записи. Это, похоже, ближе всего к тому, что описано в вопросе, однако.

Из (текущего стабильного) руководства :

--record-file=<file>

Запишите текущий поток в указанный целевой файл. Целевой файл всегда будет перезаписан без запроса.

Это смешивает исходный поток без перекодирования, что делает его очень хрупким и экспериментальным. Вполне возможно, что при этом записываются файлы, которые не работают, не соответствуют стандартам, не воспроизводятся всеми плеерами (включая mpv) или не полностью.

Целевой формат файла определяется расширением файла целевого имени файла. Рекомендуется использовать тот же целевой контейнер, что и исходный, если это возможно, и предпочитать Matroska в качестве резервного.

Поиск во время потоковой записи или включение / отключение потоковой записи во время воспроизведения может отрезать данные или создавать «дыры» в выходном файле. Это технические ограничения. В частности, видеоданные или субтитры, которые были прочитаны заранее, могут создавать такие дыры, которые могут вызвать проблемы с воспроизведением на различных проигрывателях (включая mpv).

Поведение этого параметра может измениться в будущем, например, изменить его на шаблон (аналогичный --screenshot-template), переименовать, удалить или что-либо еще, пока он не будет объявлен полуустойчивым.

1
Ipor Sircer
youtube-dl -o - | tee video.mp4 | mpv - 
1
laceration

URL-адрес YouTube - EXE MPP

Это не потоковая передача, а воспроизведение после загрузки, но вы не узнаете разницу, если у вас нет учетной записи удаленного доступа или чего-то еще.

Похожие вопросы