メモ:
| シェル変数とパイプライン | |
|---|---|
| 再生機(受信機) | # プレイバックマシンで、IMX2PCまたはPC2IMX変数を設定し、パイプラインを実行します ## IMX2PC:PCが再生を行う場合 AUDIO_DEC_SINK="rtpamrdepay !AMRNBDEC !アルサシンク " VIDEO_CAPS="\"application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998\"" VIDEO_DEC_SINK="rtph263pdepay !ffdec_h263 !オートビデオシンク」 ## IMX2PC設定終了 ## PC2IMX:iMXが再生を行う場合 AUDIO_DEC_SINK="rtpamrdepay !mfw_amrdecoder !アルサシンク " VIDEO_CAPS="\"application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998\"" VIDEO_DEC_SINK="rtph263pdepay !vpudec!mfw_v4lsink " ## PC2IMX設定終了 PLAYBACK_AUDIO="udpsrc caps=\"application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)AMR,encoding-params=(string)1,octet-align=(string)1\" \ port=5002 ! rtpbin.recv_rtp_sink_1 \ rtpbin. ! $AUDIO_DEC_SINK \ udpsrc port=5003 ! rtpbin.recv_rtcp_sink_1 \ rtpbin.send_rtcp_src_1!udpsink port=5007 sync=false async=false" PLAYBACK_VIDEO="udpsrc caps=$VIDEO_CAPS port=5000 !rtpbin.recv_rtp_sink_0\ rtpbin. ! $VIDEO_DEC_SINK \ udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 \ rtpbin.send_rtcp_src_0!udpsink port=5005 sync=false async=false" PLAYBACK_AV="$PLAYBACK_VIDEO $PLAYBACK_AUDIO" # 再生パイプライン gst-launch -v gstrtpbin name=rtpbin $PLAYBACK_AV |
| ストリーミングマシン(送信者) | # ストリーミングマシンで、IMX2PCまたはPC2IMX変数を設定し、パイプラインを実行します ## IMX2PC: iMXがストリーミングを行う場合 IP=x.x.x.x # 再生マシンのIPアドレス VIDEO_SRC="mfw_v4lsrc" VIDEO_ENC="vpuenc codec=h263 !RTPH263PPAY " AUDIO_ENC="audiotestsrc !AMRNBENCの!rtpamrpay」 ## IMX2PC設定の終了 ## PC2IMX: PCがストリーミングを行う場合 IP=y.y.y.y # 再生マシンのIPアドレス VIDEO_SRC="v4l2src" VIDEO_ENC="ffenc_h263 !RTPH263PPAY " AUDIO_ENC="audiotestsrc !AMRNBENCの!rtpamrpay」 # END PC2PC設定 STREAM_AUDIO="$AUDIO_ENC !rtpbin.send_rtp_sink_1\ rtpbin.send_rtp_src_1!udpsink ホスト=$IP ポート=5002 \ rtpbin.send_rtcp_src_1!udpsink host=$IP port=5003 sync=false async=false \ udpsrc ポート=5007 !rtpbin.recv_rtcp_sink_1」 STREAM_VIDEO="$VIDEO_SRC ! $VIDEO_ENC ! rtpbin.send_rtp_sink_0 \ rtpbin.send_rtp_src_0 ! queue ! udpsink host=$IP port=5000 \ rtpbin.send_rtcp_src_0!udpsink host=$IP port=5001 sync=false async=false \ udpsrc ポート=5005 !rtpbin.recv_rtcp_sink_0」 STREAM_AV="$STREAM_VIDEO $STREAM_AUDIO" # ストリームパイプライン gst-launch -v gstrtpbin name=rtpbin $STREAM_AV |
Hi,
UDPプロトコルに基づいて、iMXからAndroidへの電話RTPストリーミングビデオ伝送を構築したいと考えています。これを試しましたか?アドバイスする人もいますか?
感謝!
キーレルズ
Hi Leonardo,
上記のgstreamerコマンドをimx6で使用しようとしていますが、次のエラーが発生します-誤ったパイプライン:要素 "amrnbenc"がありません
Yocto 1.6を使用しています。これを修正する方法を教えていただけますか?
フレームレートを半分に落とすか、エンコード前に1080から720にスケーリングする推奨される方法は何でしょうか?できれば、ハードウェアアクセラレータを活用するアプローチ。
PCからiMXへのストリーミングを機能させるのに運が良かった人はいますか?4.1.0で約0.8fpsになっていますBSPの
「gstreamer を使用した RTP ストリーミングが失敗する - gstrtpbin 要素がありません」を参照してください。何らかの形の紛争があったようです
gst-plugin-good プラグイン内にあるその要素を含める必要があります。
これはどのバージョンの BSP でテストされましたか?im6をレシーバーとして使用すると、「no element name gstrtpbin」というエラーが表示されます。BSP 4.1.0