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/TMDSEVM572X: Simultaneous multi-channel encode

Part Number: TMDSEVM572X
Other Parts Discussed in Thread: AM5728

Tool/software: Linux

Hello,

AM5728 can encode one 16/9HD  1080pixel 60fps.

The AM5728 is it suitable to SIMULTANEOUS encode multiple-channel from the same audio video source in these video 16/9 (resolution/frame) : 1080/25+720/25+480/25+360/25+240/25+144/25.

Thank You

  • I'm not sure I understand this. Do you mean to ask whether the same AV source can be simultaneously encoded in multiple formats?
  • Hi Biser,
    Yes I would record in HDD 6 video files with these resolution 1008p and 720p and 480p and 360p and 240p and 144p. (fps =25 for each)
    I have only one Audio/Video Source.
    The AM5728 is it suitable in my case.

    Thank You
  • Hello,

    Gstreamer point of view it is possible to have one input source and split the pipeline to branches. This could be archive by using tee element. Here is example for tee usage:
    gst-launch-1.0 -e videotestsrc ! 'video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720, framerate=(fraction)25/1' ! tee name=t ! vpe ! queue ! ducatih264enc ! queue ! h264parse ! qtmux ! filesink location=x.mp4 t. ! videoscale ! 'video/x-raw, format=(string)NV12, width=(int)800, height=(int)480' ! queue ! ducatih264enc ! queue ! h264parse ! qtmux ! filesink location=x1.mp4

    Regarding the resolutions, I would recommend you to check h264enc user guide (appendix M) and these threads:
    e2e.ti.com/.../2012031
    https://e2e.ti.com/support/arm/sitara_arm/f/791/p/627403/2316990

    Hope this helps.

    BR
    Margarita

  • Hi Mami,

    Yes, AM5728 can handle encoding of all these resolution SIMULTANEOUSLY @ 25 fps. It is capable of encoding 1080p60 fps. Some performance is lost when doing multiple channel encoding due to the IVA context change at frame level.

    All the resolutions you mentioned in your post above together in mega pixels/sec processing is less then 1080p60 mega pixels/sec. There seems good margin left to accommodate the performance lost due to context change.

    Regards,
    Manisha
  • Hello,

    Here is pipeline which splits the video to 6 files also.

    gst-launch-1.0 -e videotestsrc ! 'video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720, framerate=(fraction)25/1' ! tee name=t ! vpe ! queue ! ducatih264enc ! queue ! h264parse ! qtmux ! filesink location=x.mp4 t. ! videoscale ! 'video/x-raw, format=(string)NV12, width=(int)800, height=(int)480' ! queue ! ducatih264enc level=51 ! queue ! h264parse ! qtmux ! filesink location=x1.mp4 t. ! videoscale ! 'video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080' ! queue ! ducatih264enc ! queue ! h264parse ! qtmux ! filesink location=x2.mp4 t. ! videoscale ! 'video/x-raw, format=(string)NV12, width=(int)640, height=(int)320' ! queue ! ducatih264enc ! queue ! h264parse ! qtmux ! filesink location=x3.mp4 t. ! videoscale ! videoconvert ! 'video/x-raw, width=(int)256, height=(int)144' ! queue ! avenc_mpeg4 ! queue ! mpeg4videoparse ! qtmux ! filesink location=x5.mp4 t. ! videoscale ! 'video/x-raw, format=(string)NV12, width=(int)352, height=(int)240' ! queue ! ducatih264enc ! queue ! h264parse ! qtmux ! filesink location=x4.mp4

    BR
    Margarita
  • I will try this pipeline.
  • Hi Margarita,

    The Pipeline work fine until 30fps. Normaly, It fail with 31 or more fps

    - So you use a ducathih264enc/h264parse for all resolution, except for 144p resolution : avenc_mpeg4 ! queue ! mpeg4videoparse
    Why do you use avencmpeg4 only for 144p ?

    - But when I try to display the 144p file (x5.mp4) It can't !

    Thank You

  • Hello,

    Mami said:
    - But when I try to display the 144p file (x5.mp4) It can't !

    I can decode it by using this pipeline:

     gst-launch-1.0 playbin uri=file:///home/root/x5.mp4 video-sink=waylandsink
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    [  553.439451] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock

    ...

    Mami said:
    The Pipeline work fine until 30fps. Normaly, It fail with 31 or more fps

    Check Manisha's answer.

    Mami said:
    - So you use a ducathih264enc/h264parse for all resolution, except for 144p resolution : avenc_mpeg4 ! queue ! mpeg4videoparse

    Because there is limitation how many instance could be open.

    BR
    Margarita

  • Hello,

    In additional, you could check dce.c file for num instance.

    BR
    Margarita