Bug 29533 - Утечка памяти при стриминге с перекодированием
Summary: Утечка памяти при стриминге с перекодированием
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: vlc (show other bugs)
Version: unstable
Hardware: all Linux
: P3 critical
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-28 20:24 MSK by Alexei Takaseev
Modified: 2018-11-08 15:12 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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 у меня не воспроизвелось.