Начинается и заканчивается в указанные временные метки при воспроизведении видео с использованием python -vlc - PullRequest
1 голос
/ 03 августа 2020

У меня есть список видеороликов YouTube, которые нужно воспроизвести в vl c с использованием python.
Я использую для этого библиотеки tafy и python-vlc.
Мне удалось воспроизвести видео по порядку, используя указанные выше библиотеки.
Но теперь я хочу воспроизвести видео между определенными временными метками (разными для каждого видео).
Так существует ли в tafy или python-vlc API, который позволил бы мне воспроизвести данное видео с указанной отметки времени начала до отметки времени окончания?

Обновление: демонстрационный код

import pafy
import vlc

url = "https://www.youtube.com/watch?v=bMt47wvK6u0"
video = pafy.new(url)
best = video.getbest()
playurl = best.url


Instance = vlc.Instance()
player = Instance.media_player_new()
Media = Instance.media_new(playurl)
Media.get_mrl()
player.set_media(Media)
player.play()
sleep(10)
while player.is_playing():
    sleep(1)

Итак, теперь проигрывается целое видео. Я хочу играть в определенных диапазонах.

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Объект Media имеет функции add_option и add_options. pafy падает для меня на Linux, поэтому я не могу его проверить, но

Media.add_option('start-time=120.0')
Media.add_option('run-time=60.0')

Должен начинаться с отметки 2 минуты и работать в течение 1 минуты

Media.add_option('start-time=120.0')
Media.add_option('stop-time=180.0')

Должен быть такой же результат.

0 голосов
/ 04 августа 2020

Вы хотите использовать для этого параметры libvl c. При использовании python -vl c для передачи строки в собственную библиотеку используется функция libvlc_new , вам нужно будет это изучить. Затем используйте

Playback control:
      --start-time=<float [-340282346638528859811704183484516925440.000000 .. 340282346638528859811704183484516925440.000000]> 
                                 Start time
          The stream will start at this position (in seconds).
      --stop-time=<float [-340282346638528859811704183484516925440.000000 .. 340282346638528859811704183484516925440.000000]> 
                                 Stop time
          The stream will stop at this position (in seconds).
      --run-time=<float [-340282346638528859811704183484516925440.000000 .. 340282346638528859811704183484516925440.000000]> 
                                 Run time
          The stream will run this duration (in seconds).

И другие, начиная с https://wiki.videolan.org/VLC_command-line_help

...