4

私はgstreamerを使用して、Webカメラからビデオをキャプチャし、x264でエンコードし、gstrtpbinを使用してストリーミングしています。それは素晴らしい働きをします。ただし、4つのコアすべての約50%と大量のメモリを使用します。CPUとメモリの使用量を減らすためにできることはありますか?これがパイプラインです。

pipeline_description = "gstrtpbin latency=0 max-latency=100 drop-on-latency=true use-pipeline-clock=true ntp-sync=true name=rtpbin " \
        "autovideosrc ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! " \
        "tee name=t_vid ! queue ! fpsdisplaysink name=fpssink text-overlay=false video-sink=xvimagesink signal-fps-measurements=true t_vid. ! " \
        "queue ! videorate ! ffmpegcolorspace ! x264enc pass=qual tune=zerolatency quantizer=40 ! queue ! rtph264pay ! rtpbin.send_rtp_sink_0 " \
        "rtpbin.send_rtp_src_0 ! udpsink port=%d host=%s sync=false async=false rtpbin.send_rtcp_src_0 ! " \
        "udpsink port=%d host=%s sync=false async=false name=vrtcpsink udpsrc port=%d ! " \
        "rtpbin.recv_rtcp_sink_0 autoaudiosrc ! queue ! audioresample ! audioconvert ! alawenc ! rtppcmapay ! rtpbin.send_rtp_sink_1 " \
        "rtpbin.send_rtp_src_1 ! udpsink port=%d host=%s sync=false async=false rtpbin.send_rtcp_src_1 ! " \
        "udpsink port=%d host=%s sync=false async=false udpsrc port=%d ! rtpbin.recv_rtcp_sink_1" % (VRTP_SEND_PORT, DEST,
        VRTCP_SEND_PORT, DEST, VRTCP_RECV_PORT, ARTP_SEND_PORT, DEST, ARTCP_SEND_PORT, DEST, ARTCP_RECV_PORT)
4

3 に答える 3

1

私もこの問題を見てきました。sync=false を使用すると、100% の CPU がトリガーされるようです。これについて話す別のスレッドStreaming RTP/RTSP: sync/timestamp problemsがあります。HTH

于 2013-03-10T11:32:28.270 に答える
0

私はoprofile/sysprofを実行して、最大の違反者がどのコードであるかを確認します。抽象シンクとソースの使用量を減らすことで、少し節約できる場合があります(たとえば、fpsdisplaysinkの代わりにxvimagesinkを直接使用します)。可能であれば、ffmpegcolorspaceを避けてください(原則として、色空間変換では、要素は必要がなければ何も実行せず、オーバーヘッドはほとんど発生しません)。

于 2011-05-18T14:01:26.710 に答える
0

フレームレートの計算などを必要としない場合は、その方法で CPU 消費を削減できますが、joeforker が指摘したように、h264 は計算量が非常に多いため、パイプラインのすべての最適化にもかかわらず、要素の 1 つにバグがない限り、10 ~ 15% 以上の改善が見られるとは思えません。これは、プロファイリングに関する ensonic のコメントが非常に役立つ場所です。特に、要素の一部を書き直したい場合、つまり、出荷されたものを自分のものに置き換える場合は特にそうです。

于 2011-10-05T05:02:24.510 に答える