illuspas / Node-Media-Server

A Node.js implementation of RTMP/HTTP-FLV/WS-FLV/HLS/DASH/MP4 Media Server
https://www.npmjs.com/package/node-media-server
MIT License
5.95k stars 1.52k forks source link

Cannot read property 'value' of null at Object.decodeAMF0Cmd #235

Open Novex opened 5 years ago

Novex commented 5 years ago

I just saw the following error on Node-Media-Server 2.1.2 after a 6h 47m stream over LAN with a GoPro Hero 7:

7/22/2019 23:44:40 10208 [ERROR] rtmp packet parse error. { header:
   { fmt: 0,
     cid: 43,
     timestamp: 3769403,
     length: 539464,
     type: 56,
     stream_id: 2326294421 },
  clock: 0,
  payload: null,
  capacity: 0,
  bytes: 0 }
7/22/2019 23:44:40 10208 [INFO] [rtmp publish] Close stream. id=W2TVZGH4 streamPath=/gopro/ streamId=1
7/22/2019 23:44:40 10208 [INFO] [rtmp disconnect] id=W2TVZGH4
7/22/2019 23:44:40 10208 [ERROR] rtmp packet parse error. { header:
   { fmt: 0,
     cid: 10,
     timestamp: 10452295,
     length: 8430360,
     type: 69,
     stream_id: 1198454657 },
  clock: 0,
  payload: null,
  capacity: 0,
  bytes: 0 }
7/22/2019 23:44:40 10208 [ERROR] rtmp packet parse error. { header:
   { fmt: 2,
     cid: 10,
     timestamp: 16202377,
     length: 8430360,
     type: 69,
     stream_id: 1198454657 },
  clock: 10452295,
  payload:
   <Buffer fc 83 6e c7 93 70 68 e7 52 26 d7 a3 ca 32 08 66 84 86 65 94 07 af 21 0b a1 6b bf 7a a5 f6 36 fe 24 14 44 40 04 30 bb d4 f5 26 4b de ec ca c0 75 33 ba ... >,
  capacity: 8431384,
  bytes: 128 }
7/22/2019 23:44:40 10208 [ERROR] Unknown field 22
7/22/2019 23:44:40 10208 [ERROR] uncaughtException TypeError: Cannot read property 'value' of null
    at Object.decodeAMF0Cmd [as decodeAmf0Cmd] (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_core_amf.js:1015:18)
    at NodeRtmpSession.rtmpInvokeHandler (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_rtmp_session.js:810:29)
    at NodeRtmpSession.rtmpHandler (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_rtmp_session.js:550:21)
    at NodeRtmpSession.rtmpChunkRead (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_rtmp_session.js:458:18)
    at NodeRtmpSession.onSocketData (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_rtmp_session.js:283:23)
    at Socket.emit (events.js:198:13)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:94:17)

I'm happy to try to test and debug further, but thought you might have some ideas as to the cause or where to start looking.

Novex commented 5 years ago

Huh, happened again from the GoPro.

I'm testing another device to see if it does the same thing, otherwise I assume it's something buggy in the GoPro (definitely likely).

Crash 2 (7h 37m) ``` 7/24/2019 14:26:03 12176 [INFO] [rtmp publish] New stream. id=F8EUJL7C streamPath=/gopro/ streamId=1 7/24/2019 14:26:03 12176 [INFO] [rtmp publish] Handle video. id=F8EUJL7C streamPath=/gopro/ frame_type=1 codec_id=7 codec_name=H264 0x0 7/24/2019 14:26:03 12176 [INFO] [rtmp publish] Handle audio. id=F8EUJL7C streamPath=/gopro/ sound_format=10 sound_type=2 sound_size=1 sound_rate=3 codec_name=AAC 48000 2ch ... 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 29, timestamp: 8003239, length: 16569043, type: 160, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [INFO] [rtmp publish] Close stream. id=F8EUJL7C streamPath=/gopro/ streamId=1 7/24/2019 21:03:42 12176 [INFO] [rtmp disconnect] id=F8EUJL7C 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 22, timestamp: 3025442, length: 15117222, type: 62, stream_id: 4122749564 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 55, timestamp: 8898725, length: 2134053, type: 134, stream_id: 1465022912 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 10, timestamp: 7069406, length: 1770612, type: 57, stream_id: 2751272112 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 54, timestamp: 12130929, length: 15264507, type: 189, stream_id: 4280195000 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 14, timestamp: 13559972, length: 11605903, type: 32, stream_id: 4031604583 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 28, timestamp: 5549647, length: 9965943, type: 243, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 21, timestamp: 3275848, length: 5099713, type: 215, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 3, cid: 21, timestamp: 3275848, length: 5099713, type: 215, stream_id: 0 }, clock: 3275848, payload: , capacity: 5100737, bytes: 128 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 28, timestamp: 6663316, length: 16302456, type: 210, stream_id: 2625927932 }, clock: 5549647, payload: , capacity: 9966967, bytes: 128 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 55, timestamp: 9667802, length: 10914915, type: 34, stream_id: 1465022912 }, clock: 8898725, payload: , capacity: 2135077, bytes: 128 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 88832, timestamp: 11662652, length: 6231492, type: 89, stream_id: 2278293917 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 46, timestamp: 279730, length: 16512321, type: 169, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 61, timestamp: 941318, length: 10381497, type: 255, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 25, timestamp: 14094022, length: 9991525, type: 148, stream_id: 3308854276 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 3, cid: 46, timestamp: 279730, length: 16512321, type: 169, stream_id: 0 }, clock: 279730, payload: , capacity: 16513345, bytes: 128 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 2, cid: 25, timestamp: 1336857, length: 9991525, type: 148, stream_id: 3308854276 }, clock: 14094022, payload: , capacity: 9992549, bytes: 128 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 34, timestamp: 6309992, length: 4492142, type: 138, stream_id: 360200250 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 57, timestamp: 12145821, length: 1038799, type: 110, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 24, timestamp: 7442192, length: 10428761, type: 45, stream_id: 3653071310 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 7, timestamp: 1914965, length: 5002339, type: 91, stream_id: 2650854232 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 56, timestamp: 10439026, length: 11006128, type: 147, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 31, timestamp: 5689029, length: 4041481, type: 196, stream_id: 0 }, clock: 6887117, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 2, cid: 54, timestamp: 1665780, length: 15264507, type: 189, stream_id: 4280195000 }, clock: 12130929, payload: , capacity: 15265531, bytes: 128 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 28, timestamp: 5600863, length: 9049679, type: 84, stream_id: 2625927932 }, clock: 5549647, payload: , capacity: 9966967, bytes: 256 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 54528, timestamp: 12940980, length: 424012, type: 196, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 58, timestamp: 10593226, length: 10854524, type: 111, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 48, timestamp: 8781852, length: 11306952, type: 40, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 21, timestamp: 762767, length: 144214, type: 80, stream_id: 136141216 }, clock: 3275848, payload: , capacity: 5100737, bytes: 256 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 2, cid: 29, timestamp: 5675096, length: 16569043, type: 160, stream_id: 0 }, clock: 8003239, payload: , capacity: 16570067, bytes: 128 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 36, timestamp: 6218863, length: 8105717, type: 187, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 54, timestamp: 8564750, length: 6633308, type: 33, stream_id: 416467042 }, clock: 12130929, payload: , capacity: 15265531, bytes: 256 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 20, timestamp: 6266225, length: 10064727, type: 142, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 28, timestamp: 15110856, length: 12235967, type: 23, stream_id: 3493903838 }, clock: 5549647, payload: , capacity: 9966967, bytes: 384 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 3, cid: 10, timestamp: 7069406, length: 1770612, type: 57, stream_id: 2751272112 }, clock: 7069406, payload: , capacity: 1771636, bytes: 128 } 7/24/2019 21:03:42 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 96512, timestamp: 12865845, length: 14217211, type: 246, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/24/2019 21:03:43 12176 [ERROR] Unknown field 27 7/24/2019 21:03:43 12176 [ERROR] uncaughtException TypeError: Cannot read property 'value' of null at Object.decodeAMF0Cmd [as decodeAmf0Cmd] (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_core_amf.js:1015:18) at NodeRtmpSession.rtmpInvokeHandler (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_rtmp_session.js:810:29) at NodeRtmpSession.rtmpHandler (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_rtmp_session.js:550:21) at NodeRtmpSession.rtmpChunkRead (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_rtmp_session.js:458:18) at NodeRtmpSession.onSocketData (C:\Users\Seb\Development\gopro-node-media-server\node_modules\node-media-server\node_rtmp_session.js:283:23) at Socket.emit (events.js:198:13) at addChunk (_stream_readable.js:288:12) at readableAddChunk (_stream_readable.js:269:11) at Socket.Readable.push (_stream_readable.js:224:10) at TCP.onStreamRead (internal/stream_base_commons.js:94:17) ```
Crash 3 (6h 38m 37s) 7/24/2019 21:08:24 12176 [INFO] [rtmp publish] New stream. id=PRMJUV6J streamPath=/gopro/ streamId=1 7/24/2019 21:08:24 12176 [INFO] [rtmp publish] Handle video. id=PRMJUV6J streamPath=/gopro/ frame_type=1 codec_id=7 codec_name=H264 0x0 7/24/2019 21:08:24 12176 [INFO] [rtmp publish] Handle audio. id=PRMJUV6J streamPath=/gopro/ sound_format=10 sound_type=2 sound_size=1 sound_rate=3 codec_name=AAC 48000 2ch ... 7/25/2019 03:46:01 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 41, timestamp: 6297397, length: 13845850, type: 28, stream_id: 2980196065 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/25/2019 03:46:01 12176 [INFO] [rtmp publish] Close stream. id=PRMJUV6J streamPath=/gopro/ streamId=1 7/25/2019 03:46:01 12176 [INFO] [rtmp disconnect] id=PRMJUV6J 7/25/2019 03:46:01 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 17, timestamp: 6730431, length: 16682154, type: 154, stream_id: 893538946 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/25/2019 03:46:01 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 66560, timestamp: 5498588, length: 908752, type: 158, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/25/2019 03:46:01 12176 [ERROR] rtmp packet parse error. { header: { fmt: 0, cid: 23, timestamp: 14206964, length: 536198, type: 214, stream_id: 962824423 }, clock: 0, payload: null, capacity: 0, bytes: 0 } 7/25/2019 03:46:01 12176 [ERROR] rtmp packet parse error. { header: { fmt: 1, cid: 21, timestamp: 12600465, length: 4958971, type: 212, stream_id: 0 }, clock: 0, payload: null, capacity: 0, bytes: 0 }
nivhsay commented 1 year ago

Hello, you found any solution to this?