This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5718: GStreamer framerate property

Part Number: AM5718

Tool/software: Linux

Hi Champs,

I'm trying to decode a 15 fps mp4 file and encode using a GStreamer pipeline below. The generated h.264 file was approximately 25 fps regardless of whether I set the framerate property or not. Is there anything wrong in the pipeline?

gst-launch-1.0 filesrc location=xxx.mp4 ! qtdemux ! h264parse !  
ducatih264dec ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080', framerate=(fraction)15/1 !
ducatih264enc bitrate=1024 entropy-coding-mode=1 rate-preset=low-delay
qp-max-i=40 qp-min-i=26 profile=main level=level-51
intra-interval=60 ! h264parse ! filesink location=xxx.h264

Regards,
j-breeze

  • Hello,

    Could you add -v to the pipeline and post the result.
    I would also recommend you to add videorate element.

    BR
    Margarita
  • Hello,

    Here you can check for more information and usage of videorate element:
    gstreamer.freedesktop.org/.../gst-plugins-base-plugins-videorate.html

    Hope this helps.

    BR
    Margarita
  • Hi Margarita,

    it seems that the videorate element dose not work. I'd like to post the result below. Could you please check it out?

    -------------------------------------
    o Before adding the videorate element
    -------------------------------------

    gst-launch-1.0 -v filesrc location=256k_5fps_20171017_131445_.avi ! avidemux ! h264parse ! ducatih264dec ! vpe ! 'video/x-raw,format=(string)NV12,width=1280,height=720' ! queue ! ducatih264enc bitrate=128 entropy-coding-mode=1 qp-max-i=36 qp-min-i=26 intra-interval=250 inter-interval=1 profile=main level=level-51 ! queue ! filesink location=256k_5fps_out_128k.h264 sync=false
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = "video/x-h264\,\ variant\=\(string\)itu\,\ framerate\=\(fraction\)5069/1000\,\ width\=\(int\)1280\,\ height\=\(int\)720"
    /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = "video/x-h264\,\ variant\=\(string\)itu\,\ framerate\=\(fraction\)5069/1000\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ parsed\=\(boolean\)true\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ profile\=\(string\)baseline\,\ level\=\(string\)4"
    /GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5069/1000\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstDucatiH264Enc:ducatih264enc0.GstPad:src: caps = "video/x-h264\,\ alignment\=\(string\)au\,\ stream-format\=\(string\)byte-stream\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = "video/x-h264\,\ alignment\=\(string\)au\,\ stream-format\=\(string\)byte-stream\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = "video/x-h264\,\ alignment\=\(string\)au\,\ stream-format\=\(string\)byte-stream\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstDucatiH264Enc:ducatih264enc0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5069/1000\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:sink: caps = "video/x-h264\,\ variant\=\(string\)itu\,\ framerate\=\(fraction\)5069/1000\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ parsed\=\(boolean\)true\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ profile\=\(string\)baseline\,\ level\=\(string\)4"
    /GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5069/1000\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5069/1000\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000"
    /GstPipeline:pipeline0/GstDucatiH264Enc:ducatih264enc0.GstPad:src: caps = "video/x-h264\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ stream-format\=\(string\)byte-stream\,\ align\=\(string\)au\,\ num-reorder-frames\=\(int\)0\,\ profile\=\(string\)main\,\ level\=\(string\)5.1"
    /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = "video/x-h264\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ stream-format\=\(string\)byte-stream\,\ align\=\(string\)au\,\ num-reorder-frames\=\(int\)0\,\ profile\=\(string\)main\,\ level\=\(string\)5.1"
    /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = "video/x-h264\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)5069/1000\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ stream-format\=\(string\)byte-stream\,\ align\=\(string\)au\,\ num-reorder-frames\=\(int\)0\,\ profile\=\(string\)main\,\ level\=\(string\)5.1"
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    Got EOS from element "pipeline0".
    Execution ended after 0:00:02.178148954
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Setting pipeline to NULL ...
    Freeing pipeline ...

    ------------------------------------
    o After adding the videorate element
    ------------------------------------

    gst-launch-1.0 -v filesrc location=256k_5fps_20171017_131445_.avi ! avidemux ! h264parse ! ducatih264dec ! videorate ! 'video/x-raw,framerate=5/1' ! queue ! ducatih264enc bitrate=128 entropy-coding-mode=1 qp-max-i=36 qp-min-i=26 intra-interval=250 inter-interval=1 profile=main level=level-51 ! queue ! filesink location=256k_5fps_out_128k.h264 sync=false
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = "video/x-h264\,\ variant\=\(string\)itu\,\ framerate\=\(fraction\)5069/1000\,\ width\=\(int\)1280\,\ height\=\(int\)720"
    /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = "video/x-h264\,\ variant\=\(string\)itu\,\ framerate\=\(fraction\)5069/1000\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ parsed\=\(boolean\)true\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ profile\=\(string\)baseline\,\ level\=\(string\)4"
    /GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5069/1000\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstVideoRate:videorate0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstDucatiH264Enc:ducatih264enc0.GstPad:src: caps = "video/x-h264\,\ alignment\=\(string\)au\,\ stream-format\=\(string\)byte-stream\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)5/1"
    /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = "video/x-h264\,\ alignment\=\(string\)au\,\ stream-format\=\(string\)byte-stream\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)5/1"
    /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = "video/x-h264\,\ alignment\=\(string\)au\,\ stream-format\=\(string\)byte-stream\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)5/1"
    /GstPipeline:pipeline0/GstDucatiH264Enc:ducatih264enc0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstVideoRate:videorate0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5069/1000\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:sink: caps = "video/x-h264\,\ variant\=\(string\)itu\,\ framerate\=\(fraction\)5069/1000\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ parsed\=\(boolean\)true\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ profile\=\(string\)baseline\,\ level\=\(string\)4"
    /GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5069/1000\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstVideoRate:videorate0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstDucatiH264Enc:ducatih264enc0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstVideoRate:videorate0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5069/1000\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)11"
    /GstPipeline:pipeline0/GstDucatiH264Enc:ducatih264enc0.GstPad:src: caps = "video/x-h264\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ stream-format\=\(string\)byte-stream\,\ align\=\(string\)au\,\ num-reorder-frames\=\(int\)0\,\ profile\=\(string\)main\,\ level\=\(string\)5.1"
    /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = "video/x-h264\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ stream-format\=\(string\)byte-stream\,\ align\=\(string\)au\,\ num-reorder-frames\=\(int\)0\,\ profile\=\(string\)main\,\ level\=\(string\)5.1"
    /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = "video/x-h264\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ framerate\=\(fraction\)5/1\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ stream-format\=\(string\)byte-stream\,\ align\=\(string\)au\,\ num-reorder-frames\=\(int\)0\,\ profile\=\(string\)main\,\ level\=\(string\)5.1"
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    Got EOS from element "pipeline0".
    Execution ended after 0:00:03.081233455
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Setting pipeline to NULL ...
    Freeing pipeline ...

    Regards,
    j-breeze

  • Hello,

    I will check.
    But on enc's output I see framerate 5 (ducatih264enc0.GstPad:src).
    I would recommend you to set sync=true also.

    BR
    Margarita
  • Hi j-breeze,

    vpe plugin doesn't do any framerate conversion. The codec will process the data at the rate input frames are supplied to it. Open source gstramer plugin videorate is suppose to adjust the frame rate/timestamping of the frames.

    What is making you belive that inserting videorate plugin is not making any difference? Can you share the encoded h.264 bitstream?? How many frames are there in 256k_5fps_20171017_131445_.avi  file?

    I see though that pipeline processing time changed from  0:00:02.178148954 to 0:00:03.081233455  when you inserted the videorate plugin. Not sure if that is because of the overhead of inseting videorate plugin or videorate plugin actually attempted to slow the processing.

  • Hi manisha,

    Thank you for your support. I'll ask my customer whether we can share the bitstream.

    Regards,
    j-breeze

  • Hello,

    I ran few tests on my side here is the results.

    1. I generate the video file with 15 fps by using this pipeline:

    gst-launch-1.0 videotestsrc num-buffers=100 ! 'video/x-raw,format=(string)NV12,width=1280,height=720,framerate=15/1' ! ducatih264enc ! h264parse ! qtmux ! filesink location=framerate_test.mov

    ...

    /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstDucatiH264decVpe:ducatih264decvpe0.GstGhostPad:src.GstProxyPad:proxypad6: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1408\,\ height\=\(int\)816\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)15/1"

    2. I ran pipeline without framerate convertion:

    gst-launch-1.0 -v filesrc location=framerate_test.mov ! qtdemux ! h264parse ! ducatih264dec ! vpe ! 'video/x-raw,format=(string)NV12,width=1280,height=720' ! queue ! ducatih264enc ! h264parse ! qtmux  ! queue ! filesink location=15fps.mov -v

    This is what I have on the second parser's output:

    /GstPipeline:pipeline0/GstH264Parse:h264parse1.GstPad:src: caps = "video/x-h264\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)15/1\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ stream-format\=\(string\)avc\,\ align\=\(string\)au\,\ num-reorder-frames\=\(int\)3\,\ profile\=\(string\)high\,\ level\=\(string\)4\,\ parsed\=\(boolean\)true\,\ alignment\=\(string\)au\,\ codec_data\=\(buffer\)01640028ffe1003c27640028ad84054562b8ac5471080a8ac57158a8e210248521393c9f27e4fe4fc9f279b9b34d081242909c9e4f93f27f27e4f93cdcd9a6cac05005b901000528de01ae2c"

    3.Here is the result with videorate element and after decoding on the board:

    gst-launch-1.0 -v filesrc location=framerate_test.mov ! qtdemux ! h264parse ! ducatih264decvpe ! 'video/x-raw,format=(string)NV12,width=1280,height=720' ! videorate ! video/x-raw,framerate=5/1 ! queue ! ducatih264enc ! h264parse ! qtmux  ! queue ! filesink location=5fps.mov

    gst-launch-1.0 playbin uri=file:///home/root/5fps.mov video-sink="fpsdisplaysink text-overlay=true" -v

    ...

    /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = rendered: 29, dropped: 0, current: 5.09, average: 5.35

    /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 29, dropped: 0, current: 5.09, average: 5.35

    BR
    Margarita

  • Hello j-breeze,

    I am closing this thread. If there is a need please reopen this again.

    BR
    Margarita
  • Hello Margarita,

    I have one more question. Could you please let me know why you  use the ducatih264decvpe in the step 3? What is the difference b/w ducatih264decvpe and ducatih264dec?

    Regards,
    j-breeze

  • Hello,

    Sorry, you should use ... ! ducatih264dec ! vpe ! ... like step 2.

    BR
    Margarita

  • Hi j-breeze,
    ducatih264decvpe is a bin of elements ducatih264dec and vpe. This is same as ducatih264dec ! vpe
    Since the decoder's output is always padded, using ducatih264decvpe will help in cropping the padded output from decoder.