From dc31c0305e26e8bb3a7352f70e22f1edea2f2069 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Thu, 1 Dec 2016 22:31:21 +0100 Subject: [PATCH] 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. --- create_test_videofont.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) 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): -- 2.1.4