1;verto.rtc/plenary-test;4ae28d9e-cf98-363f-ed40-2b6544fb8685;Anonymous;plen
3. In fs_cli, I issued the following command:
conference plenary-test record
The domain here is the same domain as the freeswitch server. There is no
red5/wowza/nginx-mod-rtmp/etc running on this server yet. This produced the
logs below. [0]
4. I attempted to connect to
rtmpdump. None of them receive any data.
Shortly after issuing `conference plenary-test record ...`, whether or not I
attempt to connect an rtmp client, freeswitch appears to crash -- the logs
show freeswitch starting up, the verto browser session reloads, and the
fs_cli socket is lost. I don't see anything in the logs about a crash (it
just up-and-reboots).
Have I missed a step here? Does freeswitch need a running red5/etc.
server that it is connecting to when I issue the `record` command, or is it
producing a stream that an rtmp client should be able to consume?
Forgive my ignorance here; I'm new to rtmp streaming.
I'm running freeswitch 1.6.10~17~726, via freeswitch's debian packages, on
debian 8.5.
best,
Charlie
[0] Debug log after issuing `conference plenary-test record ...`, and before
freeswitch crashes:
2016-09-14 17:41:57.378173 [DEBUG] avformat.c:1701 sample rate: 44100,
channels: 2
Parsing...
Parsed protocol: 0
Parsed app : plenary-test
RTMP_Connect1, ... connected, handshaking
2016-09-14 17:41:57.408166 [NOTICE] mod_rtmp.c:903 New RTMP session
[81e27b34-92ae-4fd8-9d8b-6ba58ed32e80]
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [INFO]
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:882 Sent handshake response
HandShake: Type Answer : 03
HandShake: Server Uptime : 414322
HandShake: FMS Version : 0.0.0.0
HandShake: Handshaking finished....
RTMP_Connect1, handshaked
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:907 Done with handshake
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:1081 [chunk_stream=3 type=0x14 ts=0 stream_id=0x0] len=116 Invoking
connect
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:192 [amfnumber=3] Got INVOKE for connect
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=2 type=0x1 stream_id=0x0] len=4
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=2 type=0x5 stream_id=0x0] len=4
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=2 type=0x6 stream_id=0x0] len=5
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=2 type=0x4 stream_id=0x0] len=6 HandleChangeChunkSize,
received: chunk size change to 512
HandleServerBW: server BW = 2097152
HandleClientBW: client BW = 2097152 1
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=3 type=0x14 stream_id=0x0] len=201 HandleCtrl,
received ctrl. type: 0, len: 6 HandleCtrl, Stream Begin 0
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=3 type=0x14 stream_id=0x0] len=61
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [NOTICE]
rtmp_sig.c:122 Sent connect reply
RTMP_ClientPacket, received: invoke 201 bytes (object begin)
Property: <Name: no-name., STRING: _result>
Property: <Name: no-name., NUMBER: 1.00>
Property: <Name: no-name., OBJECT>
(object begin)
Property: <Name: fmsVer, NUMBER: 1.00>
Property: <Name: capabilities, NUMBER: 31.00>
(object end)
Property: <Name: no-name., OBJECT>
(object begin)
Property: <Name: level, STRING: status>
Property: <Name: code, STRING:
NetConnection.Connect.Success>
Property: <Name: description, STRING: Connection succeeded>
Property: <Name: clientId, NUMBER: 217834719.00>
Property: <Name: objectEncoding, NUMBER: 0.00>
(object end)
(object end)
HandleInvoke, server invoking <_result>
HandleInvoke, received result for method call <connect> Invoking
releaseStream Invoking FCPublish Invoking createStream RTMP_ClientPacket,
received: invoke 61 bytes (object begin)
Property: <Name: no-name., STRING: connected>
Property: <Name: no-name., NUMBER: 0.00>
Property: NULL
Property: <Name: no-name., STRING:
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80>
(object end)
HandleInvoke, server invoking <connected>
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:1081 [chunk_stream=3 type=0x14 ts=0 stream_id=0x0] len=29
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:192 [amfnumber=3] Got INVOKE for releaseStream
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [WARNING]
rtmp.c:198 Unhandled invoke for "releaseStream"
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:1081 [chunk_stream=3 type=0x14 ts=0 stream_id=0x0] len=25
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:192 [amfnumber=3] Got INVOKE for FCPublish
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [WARNING]
rtmp.c:198 Unhandled invoke for "FCPublish"
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:1081 [chunk_stream=3 type=0x14 ts=0 stream_id=0x0] len=25
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:192 [amfnumber=3] Got INVOKE for createStream
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=3 type=0x14 stream_id=0x0] len=29
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [INFO]
rtmp_sig.c:137 Replied to createStream (0) RTMP_ClientPacket, received:
invoke 29 bytes (object begin)
Property: <Name: no-name., STRING: _result>
Property: <Name: no-name., NUMBER: 4.00>
Property: NULL
Property: <Name: no-name., NUMBER: 1.00>
(object end)
HandleInvoke, server invoking <_result>
HandleInvoke, received result for method call <createStream> Invoking
publish
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:1081 [chunk_stream=4 type=0x14 ts=0 stream_id=0x1] len=30
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:192 [amfnumber=4] Got INVOKE for publish
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=2 type=0x4 stream_id=0x0] len=6
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [DEBUG]
rtmp.c:656 [amfnumber=5 type=0x14 stream_id=0x1] len=138
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:57.408166 [INFO]
rtmp_sig.c:290 Got publish on stream 1.
HandleCtrl, received ctrl. type: 0, len: 6 HandleCtrl, Stream Begin 1
RTMP_ClientPacket, received: invoke 138 bytes (object begin)
Property: <Name: no-name., STRING: onStatus>
Property: <Name: no-name., NUMBER: 0.00>
Property: NULL
Property: <Name: no-name., OBJECT>
(object begin)
Property: <Name: level, STRING: status>
Property: <Name: code, STRING: NetStream.Publish.Start>
Property: <Name: description, STRING: description>
Property: <Name: details, STRING: details>
Property: <Name: clientid, NUMBER: 217834719.00>
(object end)
(object end)
HandleInvoke, server invoking <onStatus> HandleInvoke, onStatus:
NetStream.Publish.Start
2016-09-14 17:41:57.408166 [DEBUG] avformat.c:1804 use video codec: [28]
h264 (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
2016-09-14 17:41:57.408166 [WARNING] avformat.c:506 Codec [aac] is
experimental feature in libavcodec, never mind
2016-09-14 17:41:57.408166 [NOTICE] avformat.c:531 sample_rate: 44100
nb_samples: 1024
2016-09-14 17:41:57.408166 [NOTICE] avformat.c:535 sample_fmt 8 !=
AV_SAMPLE_FMT_S16, start resampler Output #0, flv, to
Stream #0.0: Audio: aac, 44100 Hz, stereo, fltp, 131 kb/s
2016-09-14 17:41:57.408166 [INFO] avformat.c:1829 Opening File
2016-09-14 17:41:57.408166 [DEBUG] conference_record.c:279 Setup timer
success interval: 20 samples: 882 using cpu capabilities: MMX2 SSE2Fast
SSSE3 SSE4.2 AVX profile Constrained Baseline, level 4.1
264 - core 142 r2431 a5831aa - H.264/MPEG-4 AVC codec - Copyleft
deblock=1:0:0 analyse=0x1:0x111 me=hex subme=2 psy=1 psy_rd=1.00:0.00
mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0
deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4
lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=30
keyint_min=16 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=crf
mbtree=1 crf=18.0 qcomp=0.60 qpmin=10 qpmax=31 qpstep=4 ip_ratio=1.41
aq=1:1.00
2016-09-14 17:41:57.478159 [INFO] avformat.c:2366 use video codec
implementation Video: libx264, yuv420p, 800x600, q=10-31, 516 kb/s
2016-09-14 17:41:57.478159 [NOTICE] avformat.c:613 video thread start
81e27b34-92ae-4fd8-9d8b-6ba58ed32e80 2016-09-14 17:41:58.458161 [DEBUG]
rtmp.c:1081 [chunk_stream=4 type=0x12 ts=0 stream_id=0x1] len=382
On Wed, Sep 14, 2016, at 05:58 AM, Stephen Dame wrote:
> You want to load mod_av
>
> Then use
>
> conference xxxxxx record rtmp://yourserver.cpm/stream_id
>
> you can pass avconv args in this command as well to control encoding
> options like frames per second and presets.
>
> This will send output of MCU to your red5, wowza, or properly
> configure nginx rtmp module.
>
> Can also send it directly to youtube.
>
> Regards,
> Stephen
>
> HostBBB - Online Learning Solutions
> 207 Technology Group Inc. 1-888-229-9756 skype: Stephen_Dame
>
> -----Original Message-----
> Charlie DeTar
> Sent: Tuesday, September 13, 2016 10:55 PM
> Subject: [Freeswitch-users] Broadcasting conference with mod_rtmp
>
> Hi,
>
> I'm trying to broadcast a WebRTC video conference (via mod_conference
> and
> mod_verto) over an rtmp stream, with the ultimate goal of transcoding
> the rtmp stream for broadcast as an HTML5 video stream (likely using
> for HSL and MPEG-DASH broadcasts). I expect I have the same sort of
> requirements of freeswitch that one would need for broadcasting rtmp
> to youtube, which the docs mention glancingly without detail [0]. :)
>
> The video conferencing is working great -- but I'm struggling to
> figure out how to access the RTMP stream for it. My rtmp.conf.xml is
> basically the default (but with `auth-calls` set to `false`). My
> dialplan is as
> follows:
>
> <include>
> <extension name="plenary">
> <condition field="destination_number" expression="^plenary-.*$"
> break="never">
> <action application="answer"/>
> <action application="info"/>
> <action application="conference"
> data="${destination_number}@plenary-conference-profile"/>
> </condition>
> </extension>
> </include>
>
> I'm able to connect to freeswitch using RTMP clients (I've tried
> rtmpdump, mplayer, and vlc). In fs_cli, I see debug info (example
> copied below
> [1])
> that seems to indicate successful connections.
> However, the RTMP client never receives any data from the server and
> disconnects after around 30 seconds.
>
> I'm trying to connect via URLs like:
> rtmp://<domain>:<port>/plenary-conferencename
> rtmp://<domain>:<port>/plenary-conferencename@plenary-conference-profi