Bug 29533

Summary: Утечка памяти при стриминге с перекодированием
Product: Sisyphus Reporter: Alexei Takaseev <taf>
Component: vlcAssignee: Anton Farygin <rider>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: critical    
Priority: P3 CC: darktemplar, rider, sbolshakov
Version: unstable   
Hardware: all   
OS: Linux   

Description Alexei Takaseev 2013-10-28 20:24:21 MSK
стриминг с перекодированием производится такой командой:

cvlc -vvvvv udp://@233.0.0.101:16384 --sout '#transcode{vcodec=mp2v,vb=30,fps=25}:rtp{mux=ts,dst=233.0.0.21,port=16384,sdp=sap://}'

Через какое-то время в консоль начинает активно сыпать ошибками:

[0x7f94e4001188] avcodec encoder warning: almost fed libavcodec with two frames with the same PTS (31636825825)
[0x7f94e4001188] avcodec encoder warning: almost fed libavcodec with two frames with the same PTS (31636865825)
[0x7f94e4001188] avcodec encoder warning: almost fed libavcodec with two frames with the same PTS (31636905825)
[0x7f94e4001188] avcodec encoder warning: almost fed libavcodec with two frames with the same PTS (31636945825)
[0x7f94e4001188] avcodec encoder warning: almost fed libavcodec with two frames with the same PTS (31636985825)
[0x7fc84c008be8] stream_out_transcode stream out debug: drift is too high (100053, resetting master sync


В момент появления этих ожибок процесс vlc скачкообразно занимает себе виртуальную память до совсем неприличных размеров (фиксировались случаи до 300 Гигабайт). 

После появления сообщения "resetting master sync" занимаемая память расти перестает, но и не освобождается. При последующих потоках ошибок снова начинается рост.
Comment 1 Sergey Bolshakov 2013-10-29 14:19:49 MSK
это актуальный сизиф ?
Comment 2 Alexei Takaseev 2013-10-30 04:53:39 MSK
Да.
vlc-2.1.0-alt1

Аналогичная проблема и на p7.
Comment 3 Sergey Bolshakov 2013-10-30 13:58:03 MSK
поток откуда ? (какое устройство или что там)
если делать в два приёма: капчить на диск, потом транскодировать -- повторяется ?
Comment 4 Alexei Takaseev 2013-10-31 08:08:13 MSK
Источник стример IPTV IPS-01 (http://www.stv.odessa.ua/ru/oborudovanie-dlja-organizatsii-tsifrovogo-veschanija/39-uncategorised/58-ip-streamer-ips-01.html) Потребитель выходного потока модулятор DVB-C.

Попробовал сохранять поток в файл и перекодировать.

На этапе сохранения утечки нет.

cvlc -vvvvvv udp://@233.0.0.101:16384 --clock-synchro 0 --packetizer-mpegvideo-sync-iframe --sout '#standard{mux=ts,dst=out.ts,access=file}"'

На этапе кодирования в какой-то момент так же появляются ошибки

cvlc -vvvvvv out.ts --clock-synchro 0 --packetizer-mpegvideo-sync-iframe --sout '#transcode{vcodec=mp2v,vb=4500,fps=25,scale=1}:rtp{mux=ts,dst=233.0.0.21,port=16384,sdp=sap://}'

[0x7feaa0001048] avcodec encoder warning: almost fed libavcodec with two frames with the same PTS (244430067253)

и последующее разрастание процесса в памяти. Проверил на последнем Сизифе и на p7

Если нужно, то могу выложить куда-нибудь на файлообменник записаный файл для теста.
Comment 5 Sergey Bolshakov 2013-10-31 17:04:35 MSK
а если ещё попробовать перекодировать с диска на диск же,
а потом постримить с диcка ?
Comment 6 Alexei Takaseev 2013-11-01 04:38:32 MSK
cvlc -vvvvvv out.ts --clock-synchro 0 --packetizer-mpegvideo-sync-iframe --sout '#transcode{vcodec=mp2v,vb=4500,fps=25,scale=1}:standard{mux=ts,dst=qqqq.mpg,access=file}'

точно так же в какого-то момента отжирает 11 гигов памяти.
Comment 7 Anton Farygin 2018-11-08 15:12:51 MSK
на vlc3 у меня не воспроизвелось.