From: Antonio Ospite Date: Thu, 1 Dec 2016 21:31:21 +0000 (+0100) Subject: create_test_videofont.py: make the pipelines more configurable X-Git-Url: https://git.ao2.it/vidi-player.git/commitdiff_plain/dc31c0305e26e8bb3a7352f70e22f1edea2f2069?ds=sidebyside create_test_videofont.py: make the pipelines more configurable While at it also calculate the proper number of video buffers, this produces more robust samples in which both the audio and the video streams have the same length in seconds. --- diff --git a/create_test_videofont.py b/create_test_videofont.py index 14c6509..40125a6 100755 --- a/create_test_videofont.py +++ b/create_test_videofont.py @@ -9,25 +9,31 @@ FONT_DESC = "Mono, 72" SAMPLE_LENGTH_SECONDS = 4 -# 48000 samples per seconds, at 1024 samples per buffer -NUM_AUDIO_BUFFERS = round(SAMPLE_LENGTH_SECONDS * 48000 / 1024) +VIDEO_FRAMERATE = 25 +VIDEO_BUFFERS = SAMPLE_LENGTH_SECONDS * VIDEO_FRAMERATE + +AUDIO_SAMPLERATE = 48000 +AUDIO_SAMPLESPERBUFFER = 1024 +AUDIO_BUFFERS = round(SAMPLE_LENGTH_SECONDS * 48000 / 1024) LIVE_PIPELINE_TEMPLATE = """ - videotestsrc num-buffers=1 pattern=black ! \ + videotestsrc num-buffers=%d pattern=black ! video/x-raw,framerate=%d/1 ! \ textoverlay valignment=center halignment=center font-desc="%s" text="{0}" ! \ autovideosink \ - audiotestsrc num-buffers=%d freq={1:f} ! audio/x-raw,rate=48000 ! \ + audiotestsrc num-buffers=%d samplesperbuffer=%d freq={1:f} ! audio/x-raw,rate=%d ! \ autoaudiosink -""" % (FONT_DESC, NUM_AUDIO_BUFFERS) +""" % (VIDEO_BUFFERS, VIDEO_FRAMERATE, FONT_DESC, AUDIO_BUFFERS, + AUDIO_SAMPLESPERBUFFER, AUDIO_SAMPLERATE) FILE_PIPELINE_TEMPLATE = """ webmmux name=mux ! filesink location="{2}/sample_{0}.webm" - videotestsrc num-buffers=1 pattern=black ! \ + videotestsrc num-buffers=%d pattern=black ! video/x-raw,framerate=%d/1 ! \ textoverlay valignment=center halignment=center font-desc="%s" text="{0}" ! \ queue ! vp9enc ! mux. - audiotestsrc num-buffers=%d freq={1:f} ! audio/x-raw,rate=48000 ! \ + audiotestsrc num-buffers=%d samplesperbuffer=%d freq={1:f} ! audio/x-raw,rate=%d ! \ queue ! audioconvert ! vorbisenc quality=0.5 ! queue ! mux. -""" % (FONT_DESC, NUM_AUDIO_BUFFERS) +""" % (VIDEO_BUFFERS, VIDEO_FRAMERATE, FONT_DESC, AUDIO_BUFFERS, + AUDIO_SAMPLESPERBUFFER, AUDIO_SAMPLERATE) def create_test_videofont(pipeline_template, notes_range, destination_dir=None):