工具/软件:
尊敬的 TI 专家:
我们使用 AM62A7 SoC、 编码和解码是否可以同时执行? 此外、我们想了解如何将解码数据传输到 GStreamer、因为我们的目标是开发视频播放功能。
感谢您的帮助!
此致、
Kangbai Li
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.
嗨、Kangbai、
是的、编码器和解码器同时工作。 下面是示例流水线
gst-launch-1.0 -v udpsrc port=6001 ! 'application/x-rtp, media=(string)video, clock- rate=(int)90000, encoding-name=(string)H264, payload=(int)96' ! \ rtph264depay ! h264parse ! v4l2h264dec capture-io-mode=4 ! tiovxmultiscaler name=msc \ msc. ! queue ! video/x-raw, width=640, height=480, format=NV12 ! kmssink driver-name=tidss \ msc. ! queue ! video/x-raw, format=NV12, width=1920, height=1080 ! v4l2h264enc output- io-mode=5 extra-controls="controls,h264_i_frame_period=60,video_gop_size=60" ! rtph264pay ! udpsink host=128.247.75.190 port=6001 & gst-launch-1.0 -v udpsrc port=6002 ! 'application/x-rtp, media=(string)video, clock- rate=(int)90000, encoding-name=(string)H264, payload=(int)96' ! \ rtph264depay ! h264parse ! v4l2h264dec capture-io-mode=4 ! queue ! v4l2h264enc output- io-mode=dmabuf-import extra-controls="controls,h264_i_frame_period=60,video_gop_size=60" ! rtph264pay ! udpsink host=128.247.75.190 port=6002 & gst-launch-1.0 -v udpsrc port=6003 ! 'application/x-rtp, media=(string)video, clock- rate=(int)90000, encoding-name=(string)H264, payload=(int)96' ! \ rtph264depay ! h264parse ! v4l2h264dec capture-io-mode=4 ! queue ! v4l2h264enc output- io-mode=dmabuf-import extra-controls="controls,h264_i_frame_period=60,video_gop_size=60" ! rtph264pay ! udpsink host=128.247.75.190 port=6003 & gst-launch-1.0 -v udpsrc port=6004 ! 'application/x-rtp, media=(string)video, clock- rate=(int)90000, encoding-name=(string)H264, payload=(int)96' ! \ rtph264depay ! h264parse ! v4l2h264dec capture-io-mode=4 ! queue ! v4l2h264enc output- io-mode=dmabuf-import extra-controls="controls,h264_i_frame_period=60,video_gop_size=60" ! rtph264pay ! udpsink host=128.247.75.190 port=6004 &
有关更多详细信息、请参阅以下链接:-
此致、
Dilna K
尊敬的 Dilna K:
感谢您的答复,我有以下问题:
1、我有一个 AVI 格式的视频文件,我想将其发送到解码器进行解码,然后将解码后的数据发送到显示器进行显示。 如何构建流水线。
2、我们要断开最初发送到显示器的数据流,然后将解码的 AVI 视频文件数据发送到显示器。 我们使用函数 GST_CD_UNLINK (SRC_PAD、SINK_PAD) 要断开最初发送到监护仪的数据流、、具体代码如下
auto tiovxmultiscaler2 = std::make_shared<tiovxmultiscalerModule>("tiovxmultiscaler2");
tiovxmultiscaler2->set_property("target", 1);
src_element = tiovxmultiscaler2->element();
dest_element = capsFilterMsc2_disp->element();
gst_cd_unlink(src_element, dest_element);
但我发现的值 src_element 和 dest_element 为 NULL。 为什么会发生这种情况? 或者、是否有更好的方法来实现此功能?
最初构建的流水线如下所示
感谢您的帮助!
此致、
Kangbai Li
嗨、Kangbai、
现在、我可以查看您的渠道。
1.您可以按照下面的方法构建管道 ,将解码的数据发送到显示器进行显示。
gst-launch-1.0 filesrc location=/<path_to_file> ! qtdemux ! h264parse ! v4l2h264dec ! video/x-raw,format=NV12 ! kmssink
2.您可以使用 gstreamer 输入选择器 用于动态切换选择器的在 videosrc 和 filesrc 之间切换的元素是实现此功能的另一个更好的方法