2

我有一个使用 python 在 vlc 中播放的 youtube 视频列表。
我正在使用tafypython-vlc库。
我已经设法使用上述库按顺序播放视频。
但现在我想在某些时间戳之间播放视频(每个视频不同)。
那么 API 中是否存在tafy或者python-vlc可以让我从指定的开始时间戳到结束时间戳播放给定的视频?

更新:演示代码

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)

所以现在这会播放一个完整的视频。我想在特定范围内播放它。

4

2 回答 2

3

Media对象同时具有add_optionadd_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')

应该达到同样的结果。

于 2020-08-07T15:14:29.070 回答
0

您想为此使用 libvlc 选项。使用 python-vlc,用于将字符串传递给本机库的函数是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

于 2020-08-04T12:21:00.893 回答