2017-10-17 216 views
0

DTS我使用FFMPEG把我的IP摄像机的RTSP流,并将其发送到我的流媒体服务器的RTMP。当我运行命令时,出现以下错误5,然后流开始。但是,如果我让他走了一夜,它就会停止流,并填写了这个错误终端也是如此。FFMPEG:[FLV @ 0xbeee10]非单调的输出流

[flv @ 0x191ba0] Non-monotonous DTS in output stream 0:0; previous: 0, current: -202; changing to 0. This may result in incorrect timestamps in the output file. 

我的FFMPEG命令有什么问题吗?

ffmpeg -rtsp_transport tcp -i rtsp://[email protected]:redact_port/live0.264 -acodec copy -vcodec copy -f flv rtmp://127.0.0.1/live/ipcam 
ffmpeg version N-87747-g123f6dc Copyright (c) 2000-2017 the FFmpeg developers 
    built with gcc 4.9.2 (Raspbian 4.9.2-10) 
    configuration: --enable-shared --enable-gpl --prefix=/usr --enable-nonfree --enable-libmp3lame --enable-libx264 --enable-version3 --disable-mmx 
    libavutil  55. 77.101/55. 77.101 
    libavcodec  57.106.104/57.106.104 
    libavformat 57. 82.102/57. 82.102 
    libavdevice 57. 9.101/57. 9.101 
    libavfilter  6.106.101/6.106.101 
    libswscale  4. 7.103/4. 7.103 
    libswresample 2. 8.100/2. 8.100 
    libpostproc 54. 6.100/54. 6.100 
Guessed Channel Layout for Input Stream #0.1 : mono 
Input #0, rtsp, from 'rtsp://[email protected]:redact_port/live0.264': 
    Metadata: 
    title   : Session Streamed by LIBZRTSP 
    comment   : live0.264 
    Duration: N/A, start: 0.242000, bitrate: N/A 
    Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1280x720, 25 fps, 24.83 tbr, 90k tbn, 50 tbc 
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s 
Output #0, flv, to 'rtmp://127.0.0.1/live/ipcam': 
    Metadata: 
    title   : Session Streamed by LIBZRTSP 
    comment   : live0.264 
    encoder   : Lavf57.82.102 
    Stream #0:0: Video: h264 (Main) ([7][0][0][0]/0x0007), yuv420p(progressive), 1280x720, q=2-31, 25 fps, 24.83 tbr, 1k tbn, 90k tbc 
    Stream #0:1: Audio: pcm_mulaw ([8][0][0][0]/0x0008), 8000 Hz, mono, s16, 64 kb/s 
Stream mapping: 
    Stream #0:0 -> #0:0 (copy) 
    Stream #0:1 -> #0:1 (copy) 
Press [q] to stop, [?] for help 
[flv @ 0xbeee10] Non-monotonous DTS in output stream 0:0; previous: 0, current: -202; changing to 0. This may result in incorrect timestamps in the output file. 
[flv @ 0xbeee10] Non-monotonous DTS in output stream 0:0; previous: 0, current: -162; changing to 0. This may result in incorrect timestamps in the output file. 
[flv @ 0xbeee10] Non-monotonous DTS in output stream 0:0; previous: 0, current: -121; changing to 0. This may result in incorrect timestamps in the output file. 
[flv @ 0xbeee10] Non-monotonous DTS in output stream 0:0; previous: 0, current: -81; changing to 0. This may result in incorrect timestamps in the output file. 
[flv @ 0xbeee10] Non-monotonous DTS in output stream 0:0; previous: 0, current: -41; changing to 0. This may result in incorrect timestamps in the output file. 
[flv @ 0xbeee10] Non-monotonous DTS in output stream 0:0; previous: 0, current: -1; changing to 0. This may result in incorrect timestamps in the output file. 
frame=321421 fps= 25 q=-1.0 size= 1190616kB time=03:36:01.31 bitrate= 752.5kbits/s speed= 1x 

回答

0

您的输入似乎会传送不稳定的DTS,这对于实时输入来说是正常的。我建议尝试重写输入DTS并迫使输出DTS输出DTS,但是我没有走出在5分钟内,如果这是不可能的。

我的运气猜测是与ffmpeg的参数之一玩:

-video_track_timescale 25 
-filter_complex "setpts=PTS-STARTPTS" 

让我知道,如果你有任何运气!

+0

似乎都没有帮助。 '-video_track_timescale 25'没有任何影响。使用'-filter_complex “setpts = PTS-STARTPTS”'导致一堆'过去持续时间。 0.998833太large'消息,然后最终在'缓冲以供输出流0太多分组结束:0' – brewcrazy

0

我会尝试-use_wallclock_as_timestamps 1-fflags +genpts