728x90
반응형
Chapter 12. Video Composition (비디오 컴포지션)
컴포지션은 GStreamer를 사용하여 여러 비디오 디스플레이를 출력하는 방법으로 구성된다. 유용성은 많은 응용 프로그램에 적합하고 많은 필요 사항에 대한 매우 일반적인 비디오 출력 방법이다.
i.MX 8 디바이스의 경우, Weston/Wayland를 통해 비디오 컴포지션을 만드는 데 사용할 수 있는 고유한 솔루션은 GPU를 사용하여 화면 위치를 처리하는 것이다. 그래서 이 섹션의 모든 GStreamer 파이프라인은 imxcompositor_g2d 플러그인을 사용한다.
12.1. i.MX 8M
12.1.1. Video Composition Example (비디오 컴포지션 예제)
# gst-launch-1.0 -v imxcompositor_g2d name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=640 sink_0::height=480 \
sink_1::xpos=0 sink_1::ypos=480 sink_1::width=640 sink_1::height=480 ! \
waylandsink \
videotestsrc ! comp.sink_0 \
videotestsrc ! comp.sink_1
정보
이 파이프라인은 imxcompositor_g2d 플러그인 지원이 없는 i.MX 8M Nano EVK에서 작동하지 않는다.
12.1.2. Video Decode Composition Example (비디오 디코딩 컴포지션 예제)
이 예제에서는 고유한 H.264 디코딩 프로세스에서 9개의 비디오를 디스플레이하는 방법을 보여준다 :
# gst-launch-1.0 -v imxcompositor_g2d name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=1280 sink_0::height=720 \
sink_1::xpos=0 sink_1::ypos=720 sink_1::width=1280 sink_1::height=720 \
sink_2::xpos=0 sink_2::ypos=1440 sink_2::width=1280 sink_2::height=720 \
sink_3::xpos=1280 sink_3::ypos=0 sink_3::width=1280 sink_3::height=720 \
sink_4::xpos=1280 sink_4::ypos=720 sink_4::width=1280 sink_4::height=720 \
sink_5::xpos=1280 sink_5::ypos=1440 sink_5::width=1280 sink_5::height=720 \
sink_6::xpos=2560 sink_6::ypos=0 sink_6::width=1280 sink_6::height=720 \
sink_7::xpos=2560 sink_7::ypos=720 sink_7::width=1280 sink_7::height=720 \
sink_8::xpos=2560 sink_8::ypos=1440 sink_8::width=1280 sink_5::height=720 \
waylandsink sync=false filesrc location=<HD_video_file> ! decodebin ! imxvideoconvert_g2d ! tee name=t \
t. ! queue ! comp.sink_0 \
t. ! queue ! comp.sink_1 \
t. ! queue ! comp.sink_2 \
t. ! queue ! comp.sink_3 \
t. ! queue ! comp.sink_4 \
t. ! queue ! comp.sink_5 \
t. ! queue ! comp.sink_6 \
t. ! queue ! comp.sink_7 \
t. ! queue ! comp.sink_8
정보
이 파이프라인은 imxcompositor_g2d 플러그인 지원이 없는 i.MX 8M Nano EVK에서 작동하지 않는다.
12.1.3. Two Camera Composition Example (두 대의 카메라 컴포지션 예제)
이 예제에서는 MINISAS-TO-CSI 도터 카드와 USB 웹 카메라를 사용하고 있다 :
# gst-launch-1.0 -v imxcompositor_g2d name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=640 sink_0::height=480 \
sink_1::xpos=0 sink_1::ypos=480 sink_1::width=640 sink_1::height=480 ! \
video/x-raw,format=RGB16 ! autovideosink \
v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480 ! comp.sink_0 \
v4l2src device=/dev/video1 ! video/x-raw,width=640,height=480 ! comp.sink_1
정보
이 파이프라인은 imxcompositor_g2d 플러그인 지원이 없는 i.MX 8M Nano EVK에서는 작동하지 않는다.
12.2. i.MX 8QXP/QM
12.2.1. Video Composition Example (비디오 컴포지션 예제)
# gst-launch-1.0 -v imxcompositor_g2d name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=640 sink_0::height=480
sink_1::xpos=0 sink_1::ypos=480 sink_1::width=640 sink_1::height=480 ! \
waylandsink \
videotestsrc ! comp.sink_0 \
videotestsrc ! comp.sink_1
12.2.2. Nine Video Decode Composition Example (9개의 비디오 디코딩 컴포지션 예제)
i.MX 8M 예제와 다르게, 이 예제는 9개의 서로 다른 H.264 비디오를 동시에 디코딩한다 :
# gst-launch-1.0 -v imxcompositor_g2d name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=1280 sink_0::height=720 \
sink_1::xpos=0 sink_1::ypos=720 sink_1::width=1280 sink_1::height=720 \
sink_2::xpos=0 sink_2::ypos=1440 sink_2::width=1280 sink_2::height=720 \
sink_3::xpos=1280 sink_3::ypos=0 sink_3::width=1280 sink_3::height=720 \
sink_4::xpos=1280 sink_4::ypos=720 sink_4::width=1280 sink_4::height=720 \
sink_5::xpos=1280 sink_5::ypos=1440 sink_5::width=1280 sink_5::height=720 \
sink_6::xpos=2560 sink_6::ypos=0 sink_6::width=1280 sink_6::height=720 \
sink_7::xpos=2560 sink_7::ypos=720 sink_7::width=1280 sink_7::height=720 \
sink_8::xpos=2560 sink_8::ypos=1440 sink_8::width=1280 sink_5::height=720 \
! waylandsink sync=false \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_0 \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_1 \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_2 \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_3 \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_4 \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_5 \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_6 \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_7 \
filesrc location=<video_file> ! decodebin ! imxvideoconvert_g2d ! comp.sink_8
12.2.3. Eight Camera Composition Example (8개의 카메라 컴포지션 예제)
다음 예는 2개의 MX8XMIPI4CAM2 도터 카드와 8개의 MCIMXCAMERA1MP 카메라를 사용하여 동일한 출력에서 8개의 다른 이미지를 디스플레이할 수 있다.
# gst-launch-1.0 -v imxcompositor_g2d name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=320 sink_0::height=240 \
sink_1::xpos=0 sink_1::ypos=240 sink_1::width=320 sink_1::height=240 \
sink_2::xpos=320 sink_2::ypos=0 sink_2::width=320 sink_2::height=240 \
sink_3::xpos=320 sink_3::ypos=240 sink_3::width=320 sink_3::height=240 \
sink_4::xpos=640 sink_4::ypos=0 sink_4::width=320 sink_4::height=240 \
sink_5::xpos=640 sink_5::ypos=240 sink_5::width=320 sink_5::height=240 \
sink_6::xpos=960 sink_6::ypos=0 sink_6::width=320 sink_6::height=240 \
sink_7::xpos=960 sink_7::ypos=240 sink_7::width=320 sink_7::height=240 ! \
video/x-raw,format=RGB16 ! waylandsink \
v4l2src device=/dev/video0 ! video/x-raw,width=320,height=240 ! comp.sink_0 \
v4l2src device=/dev/video1 ! video/x-raw,width=320,height=240 ! comp.sink_1 \
v4l2src device=/dev/video2 ! video/x-raw,width=320,height=240 ! comp.sink_2 \
v4l2src device=/dev/video3 ! video/x-raw,width=320,height=240 ! comp.sink_3 \
v4l2src device=/dev/video4 ! video/x-raw,width=320,height=240 ! comp.sink_4 \
v4l2src device=/dev/video5 ! video/x-raw,width=320,height=240 ! comp.sink_5 \
v4l2src device=/dev/video6 ! video/x-raw,width=320,height=240 ! comp.sink_6 \
v4l2src device=/dev/video7 ! video/x-raw,width=320,height=240 ! comp.sink_7
정보
i.MX 8QXP는 하나의 MX8XMIPI4CAM2 도터 카드만 지원한다.
728x90
반응형
'NXP i.MX SoC Family > i.MX 8 GStreamer User Guide' 카테고리의 다른 글
i.MX 8 GStreamer User Guide - Zero-copy Pipelines (0) | 2022.04.22 |
---|---|
i.MX 8 GStreamer User Guide - Video Scaling and Rotation (0) | 2022.04.22 |
i.MX 8 GStreamer User Guide - Multi-Display Examples (0) | 2022.04.20 |
i.MX 8 GStreamer User Guide - Video Streaming (0) | 2022.04.20 |
i.MX 8 GStreamer User Guide - Transcode Examples (0) | 2022.04.20 |