1

Я использую ffmpeg для преобразования потока RTSP в поток RTMP. Затем поток RMTP будет передан в Wowza Streaming Engine. Я понятия не имею, почему он работает очень хорошо на одном сервере, но не работает на другом сервере. Оба сервера находятся в разных сетях, но оба являются Window Server 2012, имеют одинаковую версию ffmpeg, преобразуют один и тот же поток RTSP, но один из них завершается ошибкой с сообщением об ошибке Ошибка при открытии декодера для входного потока # 0: 0: при обработке ввода обнаружены неверные данные

Я использовал команду ffmpeg:

ffmpeg -v debug -r 7 -i "rtsp://rtsp-stream-source-server/someRtspStream" -frame rate 7 -video_size 800x592 -vcodec libx264 -preset veryfast -maxrate 750k -bufsize 1500k -tune zerolatency -g 14 -an -r 7 -f flv rtmp://wowza-server:1935/app/stream1

Я сравниваю оба сообщения отладки ffmpeg в обоих случаях и замечаю следующие различия / поведение:

  1. В случае успеха ffmpeg сначала открывает поток RTSP с использованием UDP, но с тайм-аутом UDP, затем повторяет попытку с TCP.В случае сбоя кажется, что это успешно с UDP и нет необходимости повторять с TCP.

  2. Когда ffmpeg успешно открывает поток RTSP, следующая информация распечатывается для успешного случая

Input #0, rtsp, from 'rtsp://rtsp-stream-source-server/someRtspStream':
  Metadata:
    title           : Unnamed
    comment         : N/A
  Duration: N/A, start: 0.151889, bitrate: N/A
    Stream #0:0, 53, 1/90000: Video: h264 (Main), 1 reference frame, yuvj420p(pc, bt709, progressive, center), 800x600 (800x608) [SAR 1:1 DA
R 4:3], 0/1, 6.58 tbr, 90k tbn, 180k tbc
Successfully opened the file.

А для случая сбоя распечатывается следующая информация:

Input #0, rtsp, from 'rtsp://rtsp-stream-source-server/someRtspStream':
  Metadata:
    title           : Unnamed
    comment         : N/A
  Duration: N/A, start: 0.151944, bitrate: N/A
    Stream #0:0, 28, 1/90000: Video: h264 (Main), 1 reference frame, yuvj420p(pc, bt709, progressive, center), 800x600 (800x608) [SAR 1:1 DA
R 4:3], 0/1, 6.67 tbr, 90k tbn, 180k tbc
Successfully opened the file.

Обратите внимание, что число после «Stream # 0:0» отличается.

  1. В процессе "Сопоставление потоков" случай сбоя содержит следующие сообщения об ошибках.Затем процесс ffmpeg останавливается:
detected 4 logical cores
[h264 @ 0000000001c2a9a0] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0000000001c2a9a0] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0000000001c2a9a0] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0000000001c2a9a0] sps_id 0 out of range
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Error while opening decoder for input stream #0:0 : Invalid data found when processing input

Есть ли у вас какие-либо идеи для случаев отказа и как я могу устранить неполадки?

Ниже отладочное сообщение для обоих случаев для информации

Дело об отказе

Opening an input file: rtsp://rtsp-stream-source-server/someRtspStream.
[tcp @ 00000000004b8740] No default whitelist set
[rtsp @ 0000000001c2ba00] SDP:
v=0
o=- 1509095634684735 1 IN IP4 192.168.63.139
s=Unnamed
i=N/A
t=0 0
a=tool:LIVE555 Streaming Media v2011.08.20
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:Unnamed
a=x-qt-text-inf:N/A
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:15000
a=rtpmap:96 H264/90000
a=control:track1

Failed to parse interval end specification ''
[rtsp @ 0000000001c2ba00] video codec set to: h264
[rtp @ 00000000004b8b40] No default whitelist set
[udp @ 00000000004ba420] No default whitelist set
[udp @ 00000000004ba420] 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
[udp @ 00000000004ba420] end receive buffer size reported is 65536
[udp @ 0000000001c3d160] No default whitelist set
[udp @ 0000000001c3d160] 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
[udp @ 0000000001c3d160] end receive buffer size reported is 65536
[rtsp @ 0000000001c2ba00] setting jitter buffer size to 500
[rtsp @ 0000000001c2ba00] hello state=0
Failed to parse interval end specification ''
[h264 @ 00000000004b8d40] sps_id 0 out of range
[AVBSFContext @ 00000000004bd160] nal_unit_type: 0, nal_ref_idc: 0
[AVBSFContext @ 00000000004bd160] nal_unit_type: 8, nal_ref_idc: 3
[AVBSFContext @ 00000000004bd160] nal_unit_type: 0, nal_ref_idc: 0
[AVBSFContext @ 00000000004bd160] nal_unit_type: 7, nal_ref_idc: 3
[AVBSFContext @ 00000000004bd160] nal_unit_type: 0, nal_ref_idc: 0
[AVBSFContext @ 00000000004bd160] nal_unit_type: 8, nal_ref_idc: 3
[AVBSFContext @ 00000000004bd160] nal_unit_type: 0, nal_ref_idc: 0
[AVBSFContext @ 00000000004bd160] nal_unit_type: 5, nal_ref_idc: 3
[AVBSFContext @ 00000000004bd160] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] nal_unit_type: 5, nal_ref_idc: 3
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
[h264 @ 00000000004b8d40] sps_id 0 out of range
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
    Last message repeated 2 times
[h264 @ 00000000004b8d40] Reinit context to 800x608, pix_fmt: yuvj420p
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
[h264 @ 00000000004b8d40] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
[h264 @ 00000000004b8d40] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
[h264 @ 00000000004b8d40] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
[h264 @ 00000000004b8d40] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
[h264 @ 00000000004b8d40] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
[h264 @ 00000000004b8d40] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 00000000004b8d40] nal_unit_type: 0, nal_ref_idc: 0
[h264 @ 00000000004b8d40] Unknown NAL code: 0 (0 bits)
[rtsp @ 0000000001c2ba00] All info found
[rtsp @ 0000000001c2ba00] rfps: 6.500000 0.018292
[rtsp @ 0000000001c2ba00] rfps: 6.583333 0.006178
    Last message repeated 1 times
[rtsp @ 0000000001c2ba00] rfps: 6.666667 0.004542
[rtsp @ 0000000001c2ba00] rfps: 6.750000 0.013386
[rtsp @ 0000000001c2ba00] rfps: 13.250000 0.016201
[rtsp @ 0000000001c2ba00] rfps: 13.333333 0.018170
Input #0, rtsp, from 'rtsp://rtsp-stream-source-server/someRtspStream':
  Metadata:
    title           : Unnamed
    comment         : N/A
  Duration: N/A, start: 0.151944, bitrate: N/A
    Stream #0:0, 28, 1/90000: Video: h264 (Main), 1 reference frame, yuvj420p(pc, bt709, progressive, center), 800x600 (800x608) [SAR 1:1 DA
R 4:3], 0/1, 6.67 tbr, 90k tbn, 180k tbc
Successfully opened the file.
Parsing a group of options: output url rtmp://wowza-server:1935/app/stream1.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument libx264.
Applying option an (disable audio) with argument 1.
Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 7.
Applying option f (force format) with argument flv.
Successfully parsed a group of options.
Opening an output file: rtmp://wowza-server:1935/app/stream1.
[rtmp @ 00000000023c0ec0] No default whitelist set
Parsing...
Parsed protocol: 0
Parsed host    : 127.0.0.1
Parsed app     : vdc
RTMP_Connect1, ... connected, handshaking
HandShake: Type Answer   : 03
HandShake: Server Uptime : 96850052
HandShake: FMS Version   : 3.0.1.1
HandShake: Handshaking finished....
RTMP_Connect1, handshaked
RTMP_SendPacket: fd=516, size=88
  0000:  03 00 00 00 00 00 58 14  00 00 00 00               ......X.....
  0000:  02 00 07 63 6f 6e 6e 65  63 74 00 3f f0 00 00 00   ...connect.?....
  0010:  00 00 00 03 00 03 61 70  70 02 00 03 76 64 63 00   ......app...vdc.
  0020:  04 74 79 70 65 02 00 0a  6e 6f 6e 70 72 69 76 61   .type...nonpriva
  0030:  74 65 00 05 74 63 55 72  6c 02 00 19 72 74 6d 70   te..tcUrl...rtmp
  0040:  3a 2f 2f 31 32 37 2e 30  2e 30 2e 31 3a 31 39 33   ://127.0.0.1:193
  0050:  35 2f 76 64 63 00 00 09                            5/vdc...
Invoking connect
RTMP_ReadPacket: fd=516
  0000:  02 00 00 00 00 00 04 05  00 00 00 00               ............
  0000:  00 26 25 a0                                        .&%.
HandleServerBW: server BW = 2500000
RTMP_ReadPacket: fd=516
  0000:  02 00 00 00 00 00 05 06  00 00 00 00               ............
  0000:  00 26 25 a0 02                                     .&%..
HandleClientBW: client BW = 2500000 2
RTMP_ReadPacket: fd=516
  0000:  02 00 00 00 00 00 06 04  00 00 00 00               ............
  0000:  00 00 00 00 00 00                                  ......
HandleCtrl, received ctrl. type: 0, len: 6
HandleCtrl, Stream Begin 0
RTMP_ReadPacket: fd=516
  0000:  02 00 00 00 00 00 04 01  00 00 00 00               ............
  0000:  00 00 02 00                                        ....
HandleChangeChunkSize, received: chunk size change to 512
RTMP_ReadPacket: fd=516
  0000:  03 00 00 00 00 01 05 14  00 00 00 00               ............
  0000:  02 00 07 5f 72 65 73 75  6c 74 00 3f f0 00 00 00   ..._result.?....
  0010:  00 00 00 03 00 06 66 6d  73 56 65 72 02 00 0e 46   ......fmsVer...F
  0020:  4d 53 2f 33 2c 35 2c 37  2c 37 30 30 39 00 0c 63   MS/3,5,7,7009..c
  0030:  61 70 61 62 69 6c 69 74  69 65 73 00 40 3f 00 00   apabilities.@?..
  0040:  00 00 00 00 00 04 6d 6f  64 65 00 3f f0 00 00 00   ......mode.?....
  0050:  00 00 00 00 00 09 03 00  05 6c 65 76 65 6c 02 00   .........level..
  0060:  06 73 74 61 74 75 73 00  04 63 6f 64 65 02 00 1d   .status..code...
  0070:  4e 65 74 43 6f 6e 6e 65  63 74 69 6f 6e 2e 43 6f   NetConnection.Co
  0080:  6e 6e 65 63 74 2e 53 75  63 63 65 73 73 00 0b 64   nnect.Success..d
  0090:  65 73 63 72 69 70 74 69  6f 6e 02 00 15 43 6f 6e   escription...Con
  00a0:  6e 65 63 74 69 6f 6e 20  73 75 63 63 65 65 64 65   nection succeede
  00b0:  64 2e 00 04 64 61 74 61  08 00 00 00 00 00 07 76   d...data.......v
  00c0:  65 72 73 69 6f 6e 02 00  0a 33 2c 35 2c 37 2c 37   ersion...3,5,7,7
  00d0:  30 30 39 00 00 09 00 08  63 6c 69 65 6e 74 69 64   009.....clientid
  00e0:  00 41 d6 2d 2b 68 80 00  00 00 0e 6f 62 6a 65 63   .A.-+h.....objec
  00f0:  74 45 6e 63 6f 64 69 6e  67 00 00 00 00 00 00 00   tEncoding.......
  0100:  00 00 00 00 09                                     .....
RTMP_ClientPacket, received: invoke 261 bytes
(object begin)
Property: 
Property: 
Property: 
(object begin)
Property: 
Property: 
Property: 
(object end)
Property: 
(object begin)
Property: 
Property: 
Property: 
Property: 
(object begin)
Property: 
(object end)
Property: 
Property: 
(object end)
(object end)
HandleInvoke, server invoking 
HandleInvoke, received result for method call 
RTMP_SendPacket: fd=516, size=33
  0000:  43 00 00 00 00 00 21 14                            C.....!.
  0000:  02 00 0d 72 65 6c 65 61  73 65 53 74 72 65 61 6d   ...releaseStream
  0010:  00 40 00 00 00 00 00 00  00 05 02 00 04 6e 74 74   .@...........ntt
  0020:  31                                                 1
Invoking releaseStream
RTMP_SendPacket: fd=516, size=29
  0000:  43 00 00 00 00 00 1d 14                            C.......
  0000:  02 00 09 46 43 50 75 62  6c 69 73 68 00 40 08 00   ...FCPublish.@..
  0010:  00 00 00 00 00 05 02 00  04 6e 74 74 31            .........ntt1
Invoking FCPublish
RTMP_SendPacket: fd=516, size=25
  0000:  43 00 00 00 00 00 19 14                            C.......
  0000:  02 00 0c 63 72 65 61 74  65 53 74 72 65 61 6d 00   ...createStream.
  0010:  40 10 00 00 00 00 00 00  05                        @........
Invoking createStream
RTMP_ReadPacket: fd=516
  0000:  03 00 00 00 00 00 88 14  00 00 00 00               ............
  0000:  02 00 0b 6f 6e 46 43 50  75 62 6c 69 73 68 00 00   ...onFCPublish..
  0010:  00 00 00 00 00 00 00 05  03 00 05 6c 65 76 65 6c   ...........level
  0020:  02 00 06 73 74 61 74 75  73 00 04 63 6f 64 65 02   ...status..code.
  0030:  00 17 4e 65 74 53 74 72  65 61 6d 2e 50 75 62 6c   ..NetStream.Publ
  0040:  69 73 68 2e 53 74 61 72  74 00 0b 64 65 73 63 72   ish.Start..descr
  0050:  69 70 74 69 6f 6e 02 00  19 46 43 50 75 62 6c 69   iption...FCPubli
  0060:  73 68 20 74 6f 20 73 74  72 65 61 6d 20 6e 74 74   sh to stream ntt
  0070:  31 2e 00 08 63 6c 69 65  6e 74 69 64 00 41 d6 2d   1...clientid.A.-
  0080:  2b 68 80 00 00 00 00 09                            +h......
RTMP_ClientPacket, received: invoke 136 bytes
(object begin)
Property: 
Property: 
Property: NULL
Property: 
(object begin)
Property: 
Property: 
Property: 
Property: 
(object end)
(object end)
HandleInvoke, server invoking 
RTMP_ReadPacket: fd=516
  0000:  03 00 00 00 00 00 1d 14  00 00 00 00               ............
  0000:  02 00 07 5f 72 65 73 75  6c 74 00 40 10 00 00 00   ..._result.@....
  0010:  00 00 00 05 00 3f f0 00  00 00 00 00 00            .....?.......
RTMP_ClientPacket, received: invoke 29 bytes
(object begin)
Property: 
Property: 
Property: NULL
Property: 
(object end)
HandleInvoke, server invoking 
HandleInvoke, received result for method call 
RTMP_SendPacket: fd=516, size=34
  0000:  04 00 00 00 00 00 22 14  01 00 00 00               ......".....
  0000:  02 00 07 70 75 62 6c 69  73 68 00 40 14 00 00 00   ...publish.@....
  0010:  00 00 00 05 02 00 04 6e  74 74 31 02 00 04 6c 69   .......ntt1...li
  0020:  76 65                                              ve
Invoking publish
RTMP_ReadPacket: fd=516
  0000:  02 00 00 00 00 00 06 04  00 00 00 00               ............
  0000:  00 00 00 00 00 01                                  ......
HandleCtrl, received ctrl. type: 0, len: 6
HandleCtrl, Stream Begin 1
RTMP_ReadPacket: fd=516
  0000:  03 00 00 00 00 00 7c 14  01 00 00 00               ......|.....
  0000:  02 00 08 6f 6e 53 74 61  74 75 73 00 00 00 00 00   ...onStatus.....
  0010:  00 00 00 00 05 03 00 05  6c 65 76 65 6c 02 00 06   ........level...
  0020:  73 74 61 74 75 73 00 04  63 6f 64 65 02 00 17 4e   status..code...N
  0030:  65 74 53 74 72 65 61 6d  2e 50 75 62 6c 69 73 68   etStream.Publish
  0040:  2e 53 74 61 72 74 00 0b  64 65 73 63 72 69 70 74   .Start..descript
  0050:  69 6f 6e 02 00 10 50 75  62 6c 69 73 68 69 6e 67   ion...Publishing
  0060:  20 6e 74 74 31 2e 00 08  63 6c 69 65 6e 74 69 64    ntt1...clientid
  0070:  00 41 d6 2d 2b 68 80 00  00 00 00 09               .A.-+h......
RTMP_ClientPacket, received: invoke 124 bytes
(object begin)
Property: 
Property: 
Property: NULL
Property: 
(object begin)
Property: 
Property: 
Property: 
Property: 
(object end)
(object end)
HandleInvoke, server invoking 
HandleInvoke, onStatus: NetStream.Publish.Start
Successfully opened the file.
detected 4 logical cores
[h264 @ 0000000001c2a9a0] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0000000001c2a9a0] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0000000001c2a9a0] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0000000001c2a9a0] sps_id 0 out of range
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Error while opening decoder for input stream #0:0 : Invalid data found when processing input
[AVIOContext @ 000000000239a360] Statistics: 0 seeks, 0 writeouts
RTMP_SendPacket: fd=516, size=31
  0000:  43 00 00 00 00 00 1f 14                            C.......
  0000:  02 00 0b 46 43 55 6e 70  75 62 6c 69 73 68 00 40   ...FCUnpublish.@
  0010:  18 00 00 00 00 00 00 05  02 00 04 6e 74 74 31      ...........ntt1
Invoking FCUnpublish
RTMP_SendPacket: fd=516, size=34
  0000:  43 00 00 00 00 00 22 14                            C.....".
  0000:  02 00 0c 64 65 6c 65 74  65 53 74 72 65 61 6d 00   ...deleteStream.
  0010:  40 1c 00 00 00 00 00 00  05 00 3f f0 00 00 00 00   @.........?.....
  0020:  00 00                                              ..
Invoking deleteStream

1 ответ1

0

Делая шаг назад, мне интересно, есть ли альтернатива использованию FFmpeg, которая бы избежала этой проблемы. Возможно, мне не хватает чего-то очевидного для вас, но не могли бы вы просто проглотить потоковую передачу RTSP напрямую с помощью Wowza Streaming Engine и устранить необходимость в FFmpeg в этом рабочем процессе?

Возможные ресурсы ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .