Вопрос или проблема
Я предпочитаю стримить видео с Youtube через mpv
,
mpv https://www.youtube.com/watch?v=<video-id>
Однако для длинных видео иногда звук прерывается посередине, оставляя сообщения об ошибках, такие как
[ffmpeg] tls: ошибка в функции pull.
Перезапуск видео означает его начало с самого начала. Как я могу или прямо в командной строке начать с, скажем, 30-й минуты, или, альтернативно, перейти в интерфейсе mpv
на 30-ю минуту без нажатия 30 раз кнопки вверх (что также вызывает проблемы, если сделать это слишком быстро)?
Я не нашел ответа на этот вопрос в справке. Это вообще возможно?
Также приветствуются альтернативные предложения для стриминга.
Вы можете использовать --start=MM:SS
, чтобы начать видео с MM минут SS секунд.
Например:
mpv --start=45:00 'https://www.youtube.com/watch?v=<video-id>'
Это начнет видео с 45-й минуты.
Получите приличный кэш с помощью youtube-dl (чтобы избежать проблемы с самого начала)
youtube-dl.py -q -f "(137/136)+(141/140)" "$URL"
Воспроизведите кэш с помощью любого плеера (ffplay, vlc, omxplayer, c2play, mpv и т.д.)
Если вы все еще хотите перемотать;
ffplay -ss 30:00 *.mp4
vlc --start-time=1800 *.mp4
omxplayer --pos 00:30:00 *.mp4
c2play --time 00:30:00.00 *.mp4
mpv --start=30:00 *.mp4
Ответ или решение
Для того чтобы стримить видео с YouTube с помощью MPV, начиная с произвольной точки в видео, существует простое и эффективное решение. Ваша проблема, связанная с обрывом аудио, также может быть решена с учётом оптимизаций кэширования.
Начало воспроизведения с определенного времени
Чтобы начать воспроизведение видео с конкретной отметки времени, вы можете использовать параметр --start
в командной строке. Формат команды выглядит следующим образом:
mpv --start=MM:SS 'https://www.youtube.com/watch?v=<video-id>'
Например, если вы хотите начать воспроизведение с 30-й минуты, используйте следующую команду:
mpv --start=30:00 'https://www.youtube.com/watch?v=<video-id>'
Этот способ предоставляет вам возможность сразу же перейти к нужному моменту в видео, минуя необходимость нажимать кнопку много раз, что может быть особенно неудобно для длинных видео.
Решение проблемы с обрывом аудио
Чтобы минимизировать риск возникновения ошибок, таких как [ffmpeg] tls: Error in the pull function.
, можно воспользоваться стратегией кэширования, используя сторонний инструмент youtube-dl
или его форк yt-dlp
.
С помощью youtube-dl
вы можете скачать видео с YouTube, оптимизировав кэш, что позволяет избежать проблем с воспроизведением при потоковом просмотре. Команда для скачивания может выглядеть так:
youtube-dl -q -f "(137/136)+(141/140)" 'https://www.youtube.com/watch?v=<video-id>'
После этого вы сможете воспроизвести локальный файл с помощью MPV, используя ту же опцию для начала воспроизведения с определенного времени:
mpv --start=30:00 'путь_к_скачанному_файлу.mp4'
Альтернативные варианты воспроизведения
Если вы хотите иметь дополнительные варианты воспроизведения, помимо MPV, можно рассмотреть следующие медиаплееры:
-
FFplay:
ffplay -ss 30:00 'путь_к_скачанному_файлу.mp4'
-
VLC:
vlc --start-time=1800 'путь_к_скачанному_файлу.mp4'
-
Omxplayer:
omxplayer --pos 00:30:00 'путь_к_скачанному_файлу.mp4'
Эти команды позволят начать воспроизведение в указанный момент времени и могут быть полезными в зависимости от ваших предпочтений в использовании различных плееров.
Заключение
С помощью указанных команд и подходов вы сможете эффективно управлять воспроизведением видео с YouTube, стримя их через MPV или другие медиаплееры. Использование функции кэширования поможет избежать проблем с подключением, обеспечив более стабильный просмотр. Это решение по праву можно считать оптимальным и учитывающим сложные ситуации, которые могут возникать при streaming видео.