gstreamer-webrtc icon indicating copy to clipboard operation
gstreamer-webrtc copied to clipboard

h264 support test

Open notedit opened this issue 5 years ago • 2 comments

notedit avatar Aug 27 '18 04:08 notedit

Hi @notedit I am trying to get RTMPSink to work. I had to modify webrtc/source.py to use H264 instead of VP8 as follows

diff webrtc/source.py.orig webrtc/source.py 51,52c51,52 < videotestsrc ! videoconvert ! queue ! vp8enc deadline=1 ! rtpvp8pay ! < application/x-rtp,media=video,encoding-name=VP8,payload=97,clock-rate=90000 ! queue

videotestsrc ! videoconvert ! queue ! x264enc ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=98,clock-rate=90000 ! queue 66c66 < # self.video_caps = Gst.caps_from_string('application/x-rtp,media=video,encoding-name=VP8,payload=97,clock-rate=90000')


    # self.video_caps = Gst.caps_from_string('application/x-rtp,media=video,encoding-name=H264,payload=98,clock-rate=90000')

94c94 < videotestsrc ! videoconvert ! queue ! vp8enc deadline=1 ! rtpvp8pay ! queue

    videotestsrc ! videoconvert ! queue ! x264enc ! rtph264pay ! queue

98,100c98,99 < videoenc = make_element('vp8enc') < videoenc.set_property('deadline',1) < videortppay = make_element('rtpvp8pay')

    videoenc = make_element('x264enc')
    videortppay = make_element('rtph264pay')

After that I get further but the RTMPSink pipeline still does not quite work even though the connection between the browser and gstreamer webrtcbin does work

python3 rtmpsink.py negotiation-needed <gi.GstWebRTCBin object at 0x7f405a5ebf78 (GstWebRTCBin at 0x229a240)> {"join":"aaaaa"} send offer v=0 o=- 97955494887538072 0 IN IP4 0.0.0.0 s=- t=0 0 a=ice-options:trickle a=group:BUNDLE audio0 video1 m=audio 9 UDP/TLS/RTP/SAVPF 100 c=IN IP4 0.0.0.0 a=setup:actpass a=ice-ufrag:MfILjT0UsGX+ZlVRYjtxVzfG/l3KoI/5 a=ice-pwd:YXbR/dfp8IxbmZZCLwpry51fIRSBlGMy a=rtcp-mux a=rtcp-rsize a=sendrecv a=rtpmap:100 OPUS/48000/2 a=rtcp-fb:100 nack pli a=fmtp:100 sprop-maxcapturerate=48000;sprop-stereo=0 a=ssrc:3392047779 msid:user3089320759@host-ec964ea8 webrtctransceiver0 a=ssrc:3392047779 cname:user3089320759@host-ec964ea8 a=mid:audio0 a=fingerprint:sha-256 B9:85:33:23:87:3A:AB:10:53:5F:30:B3:9D:98:1C:D6:75:8E:93:62:31:98:0D:6A:EF:8F:FE:A1:1D:39:A6:8A m=video 0 UDP/TLS/RTP/SAVPF 98 c=IN IP4 0.0.0.0 a=setup:actpass a=ice-ufrag:MfILjT0UsGX+ZlVRYjtxVzfG/l3KoI/5 a=ice-pwd:YXbR/dfp8IxbmZZCLwpry51fIRSBlGMy a=bundle-only a=rtcp-mux a=rtcp-rsize a=sendrecv a=rtpmap:98 H264/90000 a=rtcp-fb:98 nack pli a=framerate:30 a=fmtp:98 packetization-mode=1;profile-level-id=42c015;sprop-parameter-sets=Z0LAFdkBQfsBagwCC0oAAAMAAgAAAwB5HixckA==,aMuMsg== a=ssrc:3273378542 msid:user3089320759@host-ec964ea8 webrtctransceiver1 a=ssrc:3273378542 cname:user3089320759@host-ec964ea8 a=mid:video1 a=fingerprint:sha-256 B9:85:33:23:87:3A:AB:10:53:5F:30:B3:9D:98:1C:D6:75:8E:93:62:31:98:0D:6A:EF:8F:FE:A1:1D:39:A6:8A

{"answer":"v=0\r\no=- 627683038156950650 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio0 video1\r\na=msid-semantic: WMS ZSpRrdS3Ce4nQq1xMs7M0BPTYnuwGVGvZrrJ\r\nm=audio 9 UDP/TLS/RTP/SAVPF 100\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Lofg\r\na=ice-pwd:xVKgiYp6NuYboDQLMaj00IAv\r\na=ice-options:trickle\r\na=fingerprint:sha-256 D0:75:EF:98:3D:B8:16:E0:3E:B6:16:50:AD:B4:C6:C0:C6:4F:DB:47:84:ED:04:8A:29:D8:22:5F:F3:EC:AA:5D\r\na=setup:active\r\na=mid:audio0\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:100 OPUS/48000/2\r\na=fmtp:100 minptime=10;useinbandfec=1\r\na=ssrc:397471572 cname:xhxVuFE6BVQNeIlV\r\na=ssrc:397471572 msid:ZSpRrdS3Ce4nQq1xMs7M0BPTYnuwGVGvZrrJ ba96d0b8-9099-4723-ad05-88b2d6264505\r\na=ssrc:397471572 mslabel:ZSpRrdS3Ce4nQq1xMs7M0BPTYnuwGVGvZrrJ\r\na=ssrc:397471572 label:ba96d0b8-9099-4723-ad05-88b2d6264505\r\nm=video 9 UDP/TLS/RTP/SAVPF 98\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Lofg\r\na=ice-pwd:xVKgiYp6NuYboDQLMaj00IAv\r\na=ice-options:trickle\r\na=fingerprint:sha-256 D0:75:EF:98:3D:B8:16:E0:3E:B6:16:50:AD:B4:C6:C0:C6:4F:DB:47:84:ED:04:8A:29:D8:22:5F:F3:EC:AA:5D\r\na=setup:active\r\na=mid:video1\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:98 H264/90000\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e015\r\na=ssrc:2949926185 cname:xhxVuFE6BVQNeIlV\r\na=ssrc:2949926185 msid:ZSpRrdS3Ce4nQq1xMs7M0BPTYnuwGVGvZrrJ 208d68d6-f9e8-4618-aaa9-a9a694ac7440\r\na=ssrc:2949926185 mslabel:ZSpRrdS3Ce4nQq1xMs7M0BPTYnuwGVGvZrrJ\r\na=ssrc:2949926185 label:208d68d6-f9e8-4618-aaa9-a9a694ac7440\r\n"} audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003

saket424 avatar Nov 08 '19 21:11 saket424

the diff is hard to understand

notedit avatar Nov 12 '19 10:11 notedit