Opened 5 years ago

Closed 5 years ago

#4300 closed defect (invalid)

Segmenter duplicating audio stream from previous segments

Reported by: hdezela Owned by:
Priority: normal Component: ffmpeg
Version: git-master Keywords: hls, ssegmenter
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug: When using ssegmenter to produce an HLS group from RTMP (calling ffmpeg from nginx-rtmp with exec_push) each segment has the audio from (segment - 3) under the original audio.

segment0 = audio0
segment1 = audio1
segment2 = audio2
segment3 = audio3+audio0
segment4 = audio4+audio1

This keeps layering up to something like segment 100 having its audio plus the additive audio of all the -3 segments behind it. (see attached files)

The log shows nothing out of the ordinary:

ffmpeg version N-69586-ga6c2c8f Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.8.2 (GCC) 20140120 (Red Hat 4.8.2-16)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-shared --enable-libmp3lame --enable-libx264 --enable-libfaac --enable-libvpx --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libtheora --enable-librtmp
  libavutil      54. 18.100 / 54. 18.100
  libavcodec     56. 21.102 / 56. 21.102
  libavformat    56. 19.100 / 56. 19.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5.  9.103 /  5.  9.103
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Metadata:
  Server                NGINX RTMP (github.com/arut/nginx-rtmp-module)
  width                 852.00
  height                480.00
  displayWidth          852.00
  displayHeight         480.00
  duration              0.00
  framerate             30.00
  fps                   30.00
  videodatarate         100.00
  videocodecid          0.00
  audiodatarate         48.00
  audiocodecid          0.00
  profile               
  level                 
Input #0, live_flv, from 'rtmp://localhost/live/prueba':
  Metadata:
    Server          : NGINX RTMP (github.com/arut/nginx-rtmp-module)
    displayWidth    : 852
    displayHeight   : 480
    fps             : 30
    profile         : 
    level           : 
  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: h264 (High), yuv420p(tv, smpte170m/bt709/iec61966-2-1), 852x480, 102 kb/s, 30.30 fps, 30 tbr, 1k tbn, 60 tbc
    Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 49 kb/s
[libx264 @ 0x1b58880] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x1b58880] profile Constrained Baseline, level 3.0
Output #0, stream_segment,ssegment, to '/webdata/vivo/180p%05d.ts':
  Metadata:
    Server          : NGINX RTMP (github.com/arut/nginx-rtmp-module)
    displayWidth    : 852
    displayHeight   : 480
    fps             : 30
    profile         : 
    level           : 
    encoder         : Lavf56.19.100
    Stream #0:0: Video: h264 (libx264), yuv420p, 320x180, q=-1--1, 240 kb/s, 30 fps, 90k tbn, 30 tbc
    Metadata:
      encoder         : Lavc56.21.102 libx264
    Stream #0:1: Audio: aac (libfaac), 48000 Hz, stereo, s16, 32 kb/s
    Metadata:
      encoder         : Lavc56.21.102 libfaac
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (libfaac))
Press [q] to stop, [?] for help
frame=   15 fps=0.0 q=37.0 size=N/A time=00:00:00.44 bitrate=N/A dup=2 drop=0    
frame=   30 fps= 30 q=32.0 size=N/A time=00:00:00.96 bitrate=N/A dup=2 drop=0    
frame=   45 fps= 30 q=32.0 size=N/A time=00:00:01.47 bitrate=N/A dup=2 drop=0    
frame=   60 fps= 30 q=30.0 size=N/A time=00:00:01.98 bitrate=N/A dup=2 drop=0    
frame=   75 fps= 30 q=33.0 size=N/A time=00:00:02.47 bitrate=N/A dup=2 drop=0    
frame=   90 fps= 30 q=30.0 size=N/A time=00:00:02.98 bitrate=N/A dup=2 drop=0    
frame=  105 fps= 30 q=35.0 size=N/A time=00:00:03.47 bitrate=N/A dup=2 drop=0    
frame=  120 fps= 30 q=31.0 size=N/A time=00:00:03.96 bitrate=N/A dup=2 drop=0
...

How to reproduce:

ffmpeg -y -re -i rtmp://localhost/live/$name -pix_fmt yuv420p -s 320x180 -b:v 240k -c:v libx264 -preset fast -profile:v baseline -level 3.0 -c:a libfaac -ac 2 -ar 48000 -b:a 32k -g 10 -f ssegment -segment_list /webdata/vivo/180p.m3u8 -segment_list_flags +live -segment_time 11 -segment_list_type m3u8 -segment_list_size 10 -segment_wrap 10 /webdata/vivo/180p%05d.ts 2>>/webdata/logs/ffmpeg-$name.log;

Attachments (4)

180p00000.ts (624.4 KB) - added by hdezela 5 years ago.
First file, no duplicate audio
180p00001.ts (431.1 KB) - added by hdezela 5 years ago.
Second file, no duplicate audio
180p00003.ts (437.9 KB) - added by hdezela 5 years ago.
Fourth file, has audio from 180p00000.ts
180p00008.ts (502.5 KB) - added by hdezela 5 years ago.
Nth file with aggregate audio from previous files.

Download all attachments as: .zip

Change History (5)

Changed 5 years ago by hdezela

First file, no duplicate audio

Changed 5 years ago by hdezela

Second file, no duplicate audio

Changed 5 years ago by hdezela

Fourth file, has audio from 180p00000.ts

Changed 5 years ago by hdezela

Nth file with aggregate audio from previous files.

comment:1 Changed 5 years ago by hdezela

  • Resolution set to invalid
  • Status changed from new to closed

Never mind...it's a problem with the nginx-rtmp module...tried through Wowza and everything is fine.

Note: See TracTickets for help on using tickets.