Thread: [Mlt-devel] frame dropping when quitting multi consumer with melt
Brought to you by:
ddennedy,
lilo_booter
From: hatsch <ha...@gm...> - 2012-09-28 11:00:54
|
i am trying to use the multi consumer with melt to capture from SDI and encode to two different X264 RTMP streams. it works fine and stable for hours when i only use one consumer. when i add a second consumer i get some random crashes( seems not to happen with the -debug option?!? ) and i am not able to quit melt anymore! this is my command: melt -profile dv_pal_wide decklink: buffer=240 -consumer avformat:rtmp://stream.url.org/live/dorf-1 \ vcodec=libx264 \ g=60 vb=600k b=600k minrate=600k maxrate=600k \ acodec=libfaac \ ab=128k ar=44100 \ ac=2 properties=consumer/avformat/x264-medium-baseline \ f=flv \ aspect=@16/9 real_time=-2 -verbose \ -consumer avformat:rtmp://stream.url.org/live/dorf-2 \ vcodec=libx264 vpre=medium \ g=60 vb=100k b=100k minrate=100k maxrate=100k \ acodec=aac strict=experimental \ ab=128k ar=44100 \ ac=2 properties=consumer/avformat/x264-medium-baseline \ f=flv \ -verbose -debug after i press the Q(uit) key (same behaviour with Ctrl-C) i get the following output. after that melt continues to output "frame dropped" and does not react on any commands anymore (Q, Ctrl-C). also kill -15 is not terminating the process, only kill -9 helps. [libx264 @ 0x7f1eec011c20] frame= 19 QP=39,36 NAL=2 Slice:P Poc:40 I:14 P:165 SKIP:1441 size=495 bytes [consumer avformat] video pkt pts 800 frame pts 20 frame_size 0 [consumer avformat] audio pts 696 (0,696000) video pts 720 (0,720000) [consumer avformat] audio pts 0 (0,000000) video pts 0 (0,000000) [consumer avformat] audio stream 1 pkt pts 697 frame pts 30720 frame_size 1024 [consumer avformat] audio pts 720 (0,720000) video pts 720 (0,720000) Current Position: 51 [consumer multi] stopping put waiting [consumer multi] stopping consumer [filter audioconvert] s16 -> f32le 2 channels 1920 samples [consumer avformat] worker processing index = 23 frame 0 queue count = 24 TFF in 0 out 0 [consumer avformat] waiting in worker index = 24 queue count = 24 [consumer avformat] audio pts 0 (0,000000) video pts 0 (0,000000) mlt_cache_put_frame: put 2 = 0x7f1ed0040fe0 TFF in 1 out 0 [consumer multi] current 38938 threshold 28140 count 21 [producer decklink] 0 frame dropped 1561 [producer decklink] 0 frame dropped 1562 [producer decklink] 0 frame dropped 1563 [producer decklink] 0 frame dropped 1564 [producer decklink] 0 frame dropped 1565 ..... |
From: Dan D. <da...@de...> - 2012-09-28 16:54:20
|
On Fri, Sep 28, 2012 at 4:00 AM, hatsch <ha...@gm...> wrote: > i am trying to use the multi consumer with melt to capture from SDI > and encode to two different X264 RTMP streams. You are using MLT in a way that I do not typically use it, and I do not have RTMP servers or much knowledge of them. I can try to reproduce it with mpegts/udp. > it works fine and stable for hours when i only use one consumer. when > i add a second consumer i get some random crashes( seems not to happen > with the -debug option?!? ) > and i am not able to quit melt anymore! > > this is my command: > melt -profile dv_pal_wide decklink: buffer=240 -consumer > avformat:rtmp://stream.url.org/live/dorf-1 \ > vcodec=libx264 \ > g=60 vb=600k b=600k minrate=600k maxrate=600k \ > acodec=libfaac \ > ab=128k ar=44100 \ > ac=2 properties=consumer/avformat/x264-medium-baseline \ generally you do not need to specify the path to the properties file because MLT already knows you are applying properties to an avformat consumer. IOW, properties=x264-medium-baseline > f=flv \ > aspect=@16/9 real_time=-2 -verbose \ you should test it with real_time=1. A positive value is generally preferred with streaming because it makes the avformat consumer govern its timing and skip flushing codec buffers when stopping. Also why use multiple processing threads when you are not even doing any processing? This property has no effect on the encoding threads. > -consumer avformat:rtmp://stream.url.org/live/dorf-2 \ > vcodec=libx264 vpre=medium \ > g=60 vb=100k b=100k minrate=100k maxrate=100k \ > acodec=aac strict=experimental \ > ab=128k ar=44100 \ > ac=2 properties=consumer/avformat/x264-medium-baseline \ > f=flv \ > -verbose -debug > > after i press the Q(uit) key (same behaviour with Ctrl-C) i get the > following output. > after that melt continues to output "frame dropped" and does not react > on any commands anymore (Q, Ctrl-C). > also kill -15 is not terminating the process, only kill -9 helps. > > [libx264 @ 0x7f1eec011c20] frame= 19 QP=39,36 NAL=2 Slice:P Poc:40 > I:14 P:165 SKIP:1441 size=495 bytes > [consumer avformat] video pkt pts 800 frame pts 20 frame_size 0 > [consumer avformat] audio pts 696 (0,696000) video pts 720 (0,720000) > [consumer avformat] audio pts 0 (0,000000) video pts 0 (0,000000) > [consumer avformat] audio stream 1 pkt pts 697 frame pts 30720 frame_size 1024 > [consumer avformat] audio pts 720 (0,720000) video pts 720 (0,720000) > Current Position: 51 > [consumer multi] stopping put waiting > [consumer multi] stopping consumer > [filter audioconvert] s16 -> f32le 2 channels 1920 samples > [consumer avformat] worker processing index = 23 frame 0 queue count = 24 > TFF in 0 out 0 > [consumer avformat] waiting in worker index = 24 queue count = 24 > [consumer avformat] audio pts 0 (0,000000) video pts 0 (0,000000) > mlt_cache_put_frame: put 2 = 0x7f1ed0040fe0 > TFF in 1 out 0 > [consumer multi] current 38938 threshold 28140 count 21 > [producer decklink] 0 > frame dropped 1561 > [producer decklink] 0 > frame dropped 1562 > [producer decklink] 0 > frame dropped 1563 > [producer decklink] 0 > frame dropped 1564 > [producer decklink] 0 > frame dropped 1565 > ..... > |
From: hatsch <ha...@gm...> - 2012-09-28 18:56:09
|
On Fri, Sep 28, 2012 at 6:54 PM, Dan Dennedy <da...@de...> wrote: > On Fri, Sep 28, 2012 at 4:00 AM, hatsch <ha...@gm...> wrote: >> i am trying to use the multi consumer with melt to capture from SDI >> and encode to two different X264 RTMP streams. > > You are using MLT in a way that I do not typically use it, and I do > not have RTMP servers or much knowledge of them. I can try to > reproduce it with mpegts/udp. for me it's also the first time using an RTMP server. i haven't experienced that issue with mpegts/udp streams before. > >> it works fine and stable for hours when i only use one consumer. when >> i add a second consumer i get some random crashes( seems not to happen >> with the -debug option?!? ) >> and i am not able to quit melt anymore! >> >> this is my command: >> melt -profile dv_pal_wide decklink: buffer=240 -consumer >> avformat:rtmp://stream.url.org/live/dorf-1 \ >> vcodec=libx264 \ >> g=60 vb=600k b=600k minrate=600k maxrate=600k \ >> acodec=libfaac \ >> ab=128k ar=44100 \ >> ac=2 properties=consumer/avformat/x264-medium-baseline \ > > generally you do not need to specify the path to the properties file > because MLT already knows you are applying properties to an avformat > consumer. IOW, properties=x264-medium-baseline that makes the presets even nicer :) btw. when using the x264 presets melt in verbose mode outputs some errors. [NULL @ 0x7fe2c4011c20] [Eval @ 0x7fe2d19e84d0] Undefined constant or missing '(' in 'baseline' [NULL @ 0x7fe2c4011c20] Unable to parse option value "baseline" [NULL @ 0x7fe2c4011c20] [Eval @ 0x7fe2d19e84d0] Undefined constant or missing '(' in 'wpred' [NULL @ 0x7fe2c4011c20] Unable to parse option value "wpred-dct8x8" [NULL @ 0x7fe2c4012fe0] [Eval @ 0x7fe2d19e8480] Undefined constant or missing '(' in 'wpred' > >> f=flv \ >> aspect=@16/9 real_time=-2 -verbose \ > > you should test it with real_time=1. A positive value is generally > preferred with streaming because it makes the avformat consumer govern > its timing and skip flushing codec buffers when stopping. Also why use > multiple processing threads when you are not even doing any > processing? This property has no effect on the encoding threads. i've changed it to real_time=1 for both consumers and i am now able to quit melt. but it had not enough power to do the encoding. so i've added avformats threads=auto (threads=2 didn't work neither) and now it works. thank you for your help! > >> -consumer avformat:rtmp://stream.url.org/live/dorf-2 \ >> vcodec=libx264 vpre=medium \ >> g=60 vb=100k b=100k minrate=100k maxrate=100k \ >> acodec=aac strict=experimental \ >> ab=128k ar=44100 \ >> ac=2 properties=consumer/avformat/x264-medium-baseline \ >> f=flv \ >> -verbose -debug >> >> after i press the Q(uit) key (same behaviour with Ctrl-C) i get the >> following output. >> after that melt continues to output "frame dropped" and does not react >> on any commands anymore (Q, Ctrl-C). >> also kill -15 is not terminating the process, only kill -9 helps. >> >> [libx264 @ 0x7f1eec011c20] frame= 19 QP=39,36 NAL=2 Slice:P Poc:40 >> I:14 P:165 SKIP:1441 size=495 bytes >> [consumer avformat] video pkt pts 800 frame pts 20 frame_size 0 >> [consumer avformat] audio pts 696 (0,696000) video pts 720 (0,720000) >> [consumer avformat] audio pts 0 (0,000000) video pts 0 (0,000000) >> [consumer avformat] audio stream 1 pkt pts 697 frame pts 30720 frame_size 1024 >> [consumer avformat] audio pts 720 (0,720000) video pts 720 (0,720000) >> Current Position: 51 >> [consumer multi] stopping put waiting >> [consumer multi] stopping consumer >> [filter audioconvert] s16 -> f32le 2 channels 1920 samples >> [consumer avformat] worker processing index = 23 frame 0 queue count = 24 >> TFF in 0 out 0 >> [consumer avformat] waiting in worker index = 24 queue count = 24 >> [consumer avformat] audio pts 0 (0,000000) video pts 0 (0,000000) >> mlt_cache_put_frame: put 2 = 0x7f1ed0040fe0 >> TFF in 1 out 0 >> [consumer multi] current 38938 threshold 28140 count 21 >> [producer decklink] 0 >> frame dropped 1561 >> [producer decklink] 0 >> frame dropped 1562 >> [producer decklink] 0 >> frame dropped 1563 >> [producer decklink] 0 >> frame dropped 1564 >> [producer decklink] 0 >> frame dropped 1565 >> ..... >> |