tkhrsskの日記

技術ネタなど

GStreamerで h264 on RTP の動画データを送受信

macOS上、GStreamerで h264 on RTP の動画データを送受信を試してみる。

RasberyPiでH.264映像配信。Macで受信 - Qiita

を参考にして、、

送り側

gst-launch-1.0 autovideosrc ! vtenc_h264 ! rtph264pay ! gdppay ! tcpserversink host=127.0.0.1 port=5555

受け側

gst-launch-1.0 tcpclientsrc host=127.0.0.1 port=5555 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink

上記で試したところ、コマンド叩いてからバッファリングされていているため、 送り側と受け側のコマンドの実行時間の差だけ動画もずれる。

  • gdppay : Payloads GStreamer Data Protocol buffers
  • avdec_h264 : libav h264 decoder
  • vtenc_h264 : H.264 encoder
  • vtenc_h264_hw : H.264 (HW only) encoder

UDPにしてみよう

送り側

gst-launch-1.0 autovideosrc ! vtenc_h264 ! rtph264pay ! gdppay ! udpsink host=127.0.0.1 port=5555

受け側

gst-launch-1.0 udpsrc port=5555 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink

udpsrcにホスト指定はない。

なんかエラーが出てカクカクしている。動画にならない。

受け側

gst-launch-1.0 udpsrc port=5555 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink

受け側のautovideosinkに、sync=falseを付与し、 受け側から起動すると、遅延がだいぶ減った状態で、ストリーミング再生できた。 受け側から起動しないと、エラーになる。

GStreamerでRaspberry Piからストリーミング配信をする - Qiita

上記ページを参考に、udpsrcにパラメータを付与する。

gst-launch-1.0 udpsrc port=5555 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264" ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false

出なくなった。。また、udpsrcにcapsをつけるとgdpdepayにつなげられなくなる模様。

もう少し格闘を続けようかどうしようか。。。

その他、参考

gstreamerでマルチキャストストリームが再生できない | アットマークテクノ ユーザーズサイト

Armadillo-810でのH.264映像のネットワーク配信について | アットマークテクノ ユーザーズサイト

GStreamer で Wireshark の RTP パケットからビデオを再... - Cisco Support Community

Linuxメモリ管理 pssとrssの違いなど

VSZまたはVSS プロセスの仮想メモリ

RSS Resident set size 物理メモリの消費量

USS Unique set size 実際にプロセスが占有しているメモリ

  • USSに共有メモリをプロセス間で均等に分配したものがPSSになる。

PSS Proportional set size プロセスが実質的に所有しているメモリ

  • PSSは、共有メモリを使う人が増えれば、一人当たりのサイズが減るわけですね。

たいていは、VSZ > RSS > PSS > USS となるはず。

mallocとかforkした場合、VSZは増えるが、実際に書き込んで使われるまではRSSは増えない。 共有ラメモリ分を分配したら、PSS。共有メモリをのぞいたら、RSS

Cookie Clicker メモ

Legacyでupgrade slotに入れるもの

  • f:id:tkhrssk:20170814001208p:plain Octillion fingers
  • f:id:tkhrssk:20170814001702p:plain Kitten experts 900 octillion
  • f:id:tkhrssk:20170814001816p:plain Kitten specialists 900 septillion
  • f:id:tkhrssk:20170814002438p:plain Reverse shadows 1.05 nonillion (250)
  • f:id:tkhrssk:20170814002214p:plain Antisuperstistronics 13 nonillion (250必要)

まだ

  • f:id:tkhrssk:20170826021751p:plain 85 non (300 anti)
  • 1.05 deci (300 prism)
  • 13deci (300 cgancemaker dice)

卒業

  • f:id:tkhrssk:20170814002546p:plain Leprechaun village 13 septillion (150)
  • f:id:tkhrssk:20170814002910p:plain Lux sanctorum 1.05 octillion (200)
  • f:id:tkhrssk:20170814002109p:plain Improbability drive 13 octillion (200)

参考

Windows PC セットアップメモ

ASUSのデスクトップを調達。 一応、長男向け。

初回起動のWindows Update、めちゃくちゃ時間かかる。一回フリーズして、強制再起動。

初期セットアップ時に、新規MSアカウントつくったら パスワードがあってないとかでて焦ったけど、電話番号登録してたんでSMSで復旧した。

その後、普通にWindowsログインしてからUpdateしたほうがスムーズに更新できた気がする。

Setup Tool

Setting

とりあえず、McAfee30日分入っていたので使用。保護者機能も使ってみた。 それなりに使えるなら購入してもいいかなと思う。

Chomeがやたらとちらつくので、調べてみたらハードウェアアクセラレーションの無効化でなおった。

EXCEL VBA PFDの図形を書くマクロ

f:id:tkhrssk:20170604012713p:plain

上記を固定で出力するマクロです。

これだけだとテンプレ用意するのと何の変わりもないけど、 GraphVizとかみたいに、必要な情報を表で埋めたら全部自動でオブジェクト作れるようにしたいとは思っている。 配置自動調整まではさすがにするつもりないけど。

Sub MacroPFD()
    Dim ShapeProc As shape, ShapeDoc As shape, ShapeCon As shape
    Dim ShapeDocIn As shape, ShapeConIn As shape
    
    Set ShapeProc = ActiveSheet.Shapes.AddShape(msoShapeOval, 200, 100, 100, 80)
    MacroStyle ShapeProc, "P1" & Chr(13) & "設計する"

    Set ShapeDoc = ActiveSheet.Shapes.AddShape(msoShapeFlowchartDocument, 350, 110, 100, 60)
    MacroStyle ShapeDoc, "D1" & Chr(13) & "設計書"
    
    Set ShapeDocIn = ActiveSheet.Shapes.AddShape(msoShapeFlowchartDocument, 50, 110, 100, 60)
    MacroStyle ShapeDocIn, "D0" & Chr(13) & "仕様書"
    
    Set ShapeCon = ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 100, 100, 100, 100)
    ShapeCon.Line.EndArrowheadStyle = msoArrowheadTriangle
    ShapeCon.ShapeStyle = msoLineStylePreset29
    ShapeCon.ConnectorFormat.BeginConnect ShapeProc, 7
    ShapeCon.ConnectorFormat.EndConnect ShapeDoc, 2

    Set ShapeConIn = ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 100, 100, 100, 100)
    ShapeConIn.Line.EndArrowheadStyle = msoArrowheadTriangle
    ShapeConIn.ShapeStyle = msoLineStylePreset29
    ShapeConIn.ConnectorFormat.BeginConnect ShapeDocIn, 4
    ShapeConIn.ConnectorFormat.EndConnect ShapeProc, 3

End Sub

Sub MacroStyle(shape, text)
    
    shape.ShapeStyle = msoShapeStylePreset1
        
    With shape.TextFrame2
        With .TextRange
            With .Characters
                .text = text
                With .ParagraphFormat
                    .FirstLineIndent = 0
                    .Alignment = msoAlignCenter
                End With
            End With
            
            With .Font
                .NameComplexScript = "+mn-cs"
                .NameFarEast = "+mn-ea"
                .Fill.Visible = msoTrue
                .Fill.ForeColor.TintAndShade = 0
                .Fill.ForeColor.Brightness = 0
                .Fill.Transparency = 0
                .Fill.Solid
                .Size = 11
                .Name = "+mn-lt"
            End With
        End With
        .VerticalAnchor = msoAnchorMiddle
        .WordWrap = msoFalse
    End With

End Sub

おまけ

f:id:tkhrssk:20170604014016p:plain

コネクタ番号のメモ

参考