[FFmpeg-devel] How to handle incoming RTMP objects?

Ilya Evseev ilya.evseev at gmail.com
Wed Jun 14 21:11:51 EEST 2017


   Hi all!
There is an incoming RTMP stream containing metainfo:

$ rtmpdump -r rtmp://10.20.30.40/test1 --live -o /dev/null -V
...
DEBUG: RTMP_ClientPacket, received: notify 330 bytes
DEBUG: (object begin)
DEBUG: (object begin)
DEBUG: Property: <Name:              width, NUMBER:    640.00>
DEBUG: Property: <Name:             height, NUMBER:    360.00>
DEBUG: Property: <Name:          framerate, NUMBER:    25.00>
DEBUG: Property: <Name: videokeyframe_freq, NUMBER:    1.00>
DEBUG: Property: <Name:       audiocodecid, STRING:    mp4a>
DEBUG: Property: <Name:      audiodatarate, NUMBER:    96.00>
DEBUG: Property: <Name:    audiosamplerate, NUMBER:    48000.00>
DEBUG: Property: <Name:      audiochannels, NUMBER:    2.00>
DEBUG: Property: <Name:        audiodevice, STRING:    Elemental
Technologies Live>
DEBUG: Property: <Name:        videodevice, STRING:    Elemental
Technologies Live>
DEBUG: Property: <Name:       videocodecid, STRING:    avc1>
DEBUG: Property: <Name:      videodatarate, NUMBER:    949.00>
DEBUG: (object end)
DEBUG: (object end)
...
DEBUG: RTMP_ClientPacket, received: notify 222 bytes
DEBUG: (object begin)
DEBUG: (object begin)
DEBUG: Property: <Name:               time, NUMBER:    6691585400.00>
DEBUG: Property: <Name:               name, STRING:    subtype:caption>
DEBUG: Property: <Name:               type, STRING:    event>
DEBUG: Property: <Name:         parameters, OBJECT>
DEBUG: (object begin)
DEBUG: Property: <Name:         data,en-US, STRING:        Have you ever
seen the rain coming down on a sunny day?>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: (object end)
...

Which ffmpeg part should intercept and handle it?
For example, flv_read_metabody in libavformat/flvdec.c is called once when
onMetaData happen after connection established, but onCuePoint events are
never happen.

Ilya


More information about the ffmpeg-devel mailing list