Я пытаюсь записать поток RTP через python-vlc ровно 30 секунд, но выходной файл иногда меньше или превышает желаемую длину видео.
Примечание. Я пытался использовать ffmpeg, ноон не может правильно декодировать поток, поэтому принято решение использовать python-vlc.
Это мой код:
import vlc
import time
vlcInstance = vlc.Instance("--demux=ts")
player1 = vlcInstance.media_player_new()
media1 = vlcInstance.media_new("rtp://239.194.115.71:5000")
media1.add_option("sout=file/ts:sample.mpg")
limiter = 0
player1.set_media(media1)
player1.play()
time.sleep(1)
while player1.is_playing():
if limiter > 30:
player1.stop()
media1.release()
break
limiter = limiter + 1
time.sleep(1)
Какой возможный метод я могу использовать, чтобы всегда записывать поток точно30 секунд?