Python VLC MediaPlayer – Setting Subtitle Delay

In this article we will see how we can set subtitle delay of the MediaPlayer object in the python vlc module. VLC media player is a free and open-source portable cross-platform media player software and streaming media server developed by the VideoLAN project. MediaPlayer object is the basic object in vlc module for playing the video. Subtitles are text derived from either a transcript or screenplay of the dialogue or commentary in films, television programs, video games, and the like, usually displayed at the bottom of the screen, but can also be at the top of the screen if there is already text at the bottom of the screen. Subtitle delay affects the timing of when the subtitle will be displayed. Positive values result in subtitles being displayed later, while negative values will result in subtitles being displayed earlier. The subtitle delay will be reset to zero each time the media changes.
In order to do this we will use video_set_spu_delay method with the MediaPlayer object
Syntax : media_player.video_set_spu_delay(n)
Argument : It takes integer as argument i.e milliseconds
Return : It returns 0 on success, -1 on error
Below is the implementation
Python3
# importing vlc moduleimport vlc# importing time moduleimport time# creating vlc media player objectmedia_player = vlc.MediaPlayer()# media objectmedia = vlc.Media("death_note.mkv")# setting media to the media playermedia_player.set_media(media)# setting subtitle delaymedia_player.video_set_spu_delay(100)# setting video scalemedia_player.video_set_scale(0.6)# start playing videomedia_player.play()# wait so the video can be played for 5 seconds# irrespective for length of videotime.sleep(5) |
Output : 
Python3
# importing vlc moduleimport vlc# importing time moduleimport time# creating vlc media player objectmedia_player = vlc.MediaPlayer()# media objectmedia = vlc.Media("1mp4.mkv")# setting media to the media playermedia_player.set_media(media)# setting video scalemedia_player.video_set_scale(0.6)# setting subtitle delaymedia_player.video_set_spu_delay(100)# start playing videomedia_player.play()# wait so the video can be played for 5 seconds# irrespective for length of videotime.sleep(5) |
Output :



