grfmaniak Опубликовано 17 сентября, 2015 · Жалоба Работал себе пару лет скрипт, выдирающий кадры из потоков мультикаста. Успешно все выдергивал. И вот некоторое время назад на группе каналов у него это перестало получаться. Это каналы "24техно","НСТ","Бойцовский клуб","24 Док". В то же время vlc эти каналы как открывал так и открывает. Что перестало нравиться ffmpeg, кто сталкивался с этим? Сравнение характеристик потоков и кодеков каналов с помощью vlc никакой разницы не выявило. Запускается так: ffmpeg -i udp://@239.192.10.160:1234 -y -f image2 -qscale 1 -t 0.001 -ss 00:00:4 -s 150*100 screen.jpg выдает: ffmpeg version N-73596-g1aab5d8 Copyright © 2000-2015 the FFmpeg developers built with gcc 4.4.5 (Debian 4.4.5-8) configuration: --disable-yasm libavutil 54. 28.100 / 54. 28.100 libavcodec 56. 47.100 / 56. 47.100 libavformat 56. 40.100 / 56. 40.100 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 21.100 / 5. 21.100 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.100 / 1. 2.100 Splitting the commandline. Reading option '-i' ... matched as input file with argument 'udp://@239.192.10.160:1234'. Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'. Reading option '-f' ... matched as option 'f' (force format) with argument 'image2'. Reading option '-qscale' ... matched as option 'qscale' (use fixed quality scale (VBR)) with argument '1'. Reading option '-t' ... matched as option 't' (record or transcode "duration" seconds of audio/video) with argument '0.001'. Reading option '-ss' ... matched as option 'ss' (set the start time offset) with argument '00:00:4'. Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '150*100'. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'. Reading option 'screen.jpg' ... matched as output file. Finished splitting the commandline. Parsing a group of options: global . Applying option y (overwrite output files) with argument 1. Applying option loglevel (set logging level) with argument debug. Successfully parsed a group of options. Parsing a group of options: input file udp://@239.192.10.160:1234. Successfully parsed a group of options. Opening an input file: udp://@239.192.10.160:1234. [udp @ 0x270b740] end receive buffer size reported is 131072 и на этом ждет бесконечно неизвестно чего. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 17 сентября, 2015 · Жалоба Буфера сокетов в системе увеличивали? Может ещё есть какой то ключ буфер увеличить в ффмпег. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
grfmaniak Опубликовано 18 сентября, 2015 (изменено) · Жалоба Буфера сокетов в системе увеличивали? Может ещё есть какой то ключ буфер увеличить в ффмпег. На других каналах, даже HD-качества, ему буферов хватает: Opening an input file: udp://239.192.10.1:1234. [udp @ 0x1cd67e0] end receive buffer size reported is 131072 [mpegts @ 0x1cd7360] Format mpegts probed with size=2048 and score=100 [mpegts @ 0x1cd7360] stream=0 stream_type=2 pid=65 prog_reg_desc= [mpegts @ 0x1cd7360] stream=1 stream_type=4 pid=66 prog_reg_desc= [mpegts @ 0x1cd7360] Before avformat_find_stream_info() pos: 0 bytes read:42112 seeks:0 [mpeg2video @ 0x1ceb5e0] Invalid frame dimensions 0x0. Last message repeated 11 times [mpegts @ 0x1cd7360] max_analyze_duration 5000000 reached at 5016000 microseconds [mpegts @ 0x1cd7360] After avformat_find_stream_info() pos: 2822444 bytes read:2822820 seeks:0 frames:342 Input #0, mpegts, from 'udp://239.192.10.1:1234': Duration: N/A, start: 46429.825467, bitrate: N/A Program 11 Metadata: service_name : ZVEZDA +7 service_provider: GAZPROM SS Stream #0:0[0x65], 131, 1/90000: Video: mpeg2video (Main), 1 reference frame ([2][0][0][0] / 0x0002), yuv420p(tv, left), 720x576 [sAR 16:15 DAR 4:3], 1/50, max. 15000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x66](rus), 211, 1/90000: Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s Program 12 Metadata: service_name : ZVEZDA +2 service_provider: GAZPROM SS Program 13 и далее все успешно до снятия скриншота Изменено 18 сентября, 2015 пользователем grfmaniak Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
paradox_ Опубликовано 18 сентября, 2015 · Жалоба strace натравите, что бы проверить весит ли он на каком то сисколл или читает постоянно с сокета если висит то добавте опцию timeout в udp, проверите будет ли он отваливатся по нему брать нужно релизовые версии ffmpeg а не что попало собирать или с поддержкой треидов или без на неблокирующих IO, для udp там два разных сценария отработки чтения Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
grfmaniak Опубликовано 18 сентября, 2015 · Жалоба strace натравите, что бы проверить весит ли он на каком то сисколл или читает постоянно с сокета если висит то добавте опцию timeout в udp, проверите будет ли он отваливатся по нему брать нужно релизовые версии ffmpeg а не что попало собирать или с поддержкой треидов или без на неблокирующих IO, для udp там два разных сценария отработки чтения Использовалась версия из репозиториев дебиана. Она и начала тупить, после того как эти несколько каналов сменили ТП на спутниках. Обновили до релизной на тот момент, результат такой же: /usr/bin/ffmpeg -i udp://239.192.10.160:1234 -y -f image2 -qscale 1 -t 0.001 -ss 00:00:4 -loglevel debug screen.jpg ffmpeg version 0.7.17, Copyright © 2000-2015 the FFmpeg developers built on Mar 12 2015 07:12:27 with gcc 4.4.5 configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libfreetype --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --extra-libs=-lgcrypt --disable-altivec --disable-armv5te --disable-armv6 --disable-vis libavutil 50. 43. 0 / 50. 43. 0 libavcodec 52.123. 0 / 52.123. 0 libavformat 52.111. 0 / 52.111. 0 libavdevice 52. 5. 0 / 52. 5. 0 libavfilter 1. 80. 0 / 1. 80. 0 libswscale 0. 14. 1 / 0. 14. 1 libpostproc 51. 2. 0 / 51. 2. 0 Потом собрали самый свежий вариант - один фиг толку нет. Все остальные 90 с лишним каналов успешно открывает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
paradox_ Опубликовано 18 сентября, 2015 · Жалоба пробуйте не loglevel не debug а trace Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...