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.

[参考译文] RTSP SERVER

Guru**** 2454880 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1550521/rtsp-server

器件型号:AM62A7-Q1


工具/软件:

你(们)好

我目前在 AM62A 上运行 RTSP 服务器。

从 PC 流式传输时、屏幕在第一帧后不会更新。

但是、在 PC 上运行 RTSP 服务器后、来自 AM62A 的流式传输工作正常。

使用下面的文件和命令执行了测试。

此外,我确认 JPEG 正常工作。

使用 h264 时出现问题。

发送:

# rtsp_multi_cam_server.py
from gi.repository import Gst, GstRtspServer, GObject, GLib

Gst.init(None)

class MultiCamRTSPServer:
    def __init__(self):
        self.server = GstRtspServer.RTSPServer()
        self.server.set_address("192.168.0.5")
        self.server.set_service("8554")  # 기본 포트

        mounts = self.server.get_mount_points()

        # === 스트림 정의 함수 ===
        def make_pipeline(width, height, pt):
            return f"""
            ( videotestsrc  is-live=true !
              video/x-raw,format=NV12,width={width},height={height},framerate=30/1 !
              v4l2h264enc extra-controls=\"controls,prepend_sps_and_pps_to_idr=1\" !
              h264parse ! rtph264pay pt={pt} name=pay0 config-interval=1 )
            """

        # 스트림 1: /cam1 (/dev/video4)
        factory1 = GstRtspServer.RTSPMediaFactory()
        factory1.set_launch(make_pipeline(1920, 1080, 96))
        factory1.set_shared(True)
        mounts.add_factory("/cam1", factory1)

        # 스트림 2: /cam2 (/dev/video5)
        factory2 = GstRtspServer.RTSPMediaFactory()
        factory2.set_launch(make_pipeline(1920, 1080, 97))
        factory2.set_shared(True)
        mounts.add_factory("/cam2", factory2)

        # 스트림 3: /cam3 (/dev/video6)
        factory3 = GstRtspServer.RTSPMediaFactory()
        factory3.set_launch(make_pipeline(640, 480, 98))
        factory3.set_shared(True)
        mounts.add_factory("/cam3", factory3)

        self.server.attach(None)
        print("RTSP 서버 실행 중:")
        print("  rtsp://<IP>:8554/cam1")
        print("  rtsp://<IP>:8554/cam2")
        print("  rtsp://<IP>:8554/cam3")

if __name__ == '__main__':
    server = MultiCamRTSPServer()
    loop = GLib.MainLoop()
    loop.run()

接收:

gst-launch-1.0 rtspsrc location=rtsp://192.168.0.5:8554:/cam1 ! rtph264depay ! avdec_h264 ! autovideosink