![]() |
|
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#11 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
sakatgg
Твоя проблема имхо в версии 14.07 не хватает каких нибудь библиотек - или вроде того. Legich5 писал что делал и тестировал под 15.05. Брось ты пока 14.07 - прикрутим мы тебе потом твой re-er++++ ![]() === Legich5 Контент фото и видео пишеться напрямую на Яндекс диск - за это отвечает davfs2. Памяти этот процесс кушает 6-10% (постоянно висит 6%), нагрузка на проц незначительная 1-3% (3 в пике). ЯД - объемом 13Gb - занято на данный момент 2,5Gb - 10 дней видео наблюдения. Работа с архивами организована посредством cron и скриптов: http://cyber-place.ru/showthread.php?t=2066 внизу... Последний раз редактировалось sunny; 07.11.2015 в 19:13. |
![]() |
![]() |
![]() |
#12 | ||||
Senior Member
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 990 ![]() ![]() ![]() ![]() ![]() |
![]()
Доброго дня,
Цитата:
Цитата:
![]() Цитата:
![]() ![]() ![]() Цитата:
P.S. Судя по логу : uvcvideo: Trying format 0x47504a4d (GPJM): 640x480 Должно быть думаю 0x47504a4d [MJPG]? И где его подрубить, может пакеты какие доставить? P.S.2 Отключил uvc2http, включил mjpg-streamer - работает нормально камера, лог приложил Последний раз редактировалось sakatgg; 06.11.2015 в 14:34. |
||||
![]() |
![]() |
![]() |
#13 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Интересная ссылка кстати, по оптимизации работы motion-а:
https://www.raspberrypi.org/forums/v...ic.php?t=75240 https://github.com/dozencrows/motion/tree/mmal-test === Мы использовали последний motion-20140827-051001.tar.gz http://www.lavrsen.dk/sources/motion-daily/ Компилировали: http://cyber-place.ru/showpost.php?p=28528&postcount=34 Все мои последние заготовки здесь, можно просто скопировать с заменой файлов в ./openwrt , там только отсутствует ваш патч для uvc драйвера: Последний раз редактировалось sunny; 07.11.2015 в 19:46. |
![]() |
![]() |
![]() |
#14 |
Junior Member
Регистрация: 05.11.2015
Сообщений: 26
Вес репутации: 0 ![]() |
![]()
Добрый день, Sunny
Я посмотрел присланные файлы и немного разобрался с тем что вы делаете. Попробую изложить как я это понял и свои комментарии. 1. Вы используете motion и uvc2http вам не нужен. Т.е. нужен только патч для драйвера UVC. Патч драйвера нужен только для уменьшения используемой памяти для буферов. В файле free.log видно что на системе свободно 97MB. Этого достаточно чтобы записывать с камеры в режиме 1280х720 используя 4 буфера (это задается константой в motion). В моем случае было всего 28MB и памяти просто не хватало. Размер буфера влияет только на потребление памяти и не влияет на скорость (для каждого кадра передается его фактический размер). 2. Logitech С270 поддерживает запись видео в режиме MJPG. Это видно в файле lsusb.log - например в строках 926-934 для режима 1280х720. 3. По логу dmesg.log можно сказать что используется режим записи MJPG (это перевернутая строка GPJM), но патч скорее всего не включен (точно не могу сказать). Есть точный признак включения патча - строки в dmesg подобные этой [ 131.000000] uvcvideo: dwMaxVideoFrameSize fixed to 368640. 4. Использование ffmpeg для сжатия видео. Скорее всего это узкое место в вашей системе. Чтобы сказать точно надо сделать следующий эксперимент: замерить какой у него fps при кодировании видео. Например сделать пару сотен JPG файлов соответствующего размера (1280х720) и сгенерировать видео из них используя ffmpeg (вроде бы у него есть такой функционал). При кодировании ffmpeg покажет с какой скоростью он кодирует видео. Важно: скорость кодирования зависит от выбранного кодека. 5. Еще в описании motion упоминается работа с БД. В общем система у вас достаточно сложная и однозначно сказать где проблема нельзя. 6. Замер загрузки CPU при использовании motion надо делать когда есть движение в кадре. Т.е. если CPU не загружен, то скорее всего нет движения. У меня на Linux PC motion потреблял 50% от 3.4GHz CPU при движении и 1.5% без движения. Если же вам надо запустить uvc2http то надо начать с запуска его из shell, а не как демона. В этом случае он будет выводить ошибки в терминал - стартовая точка для изучения. Последний раз редактировалось Legich5; 07.11.2015 в 20:16. |
![]() |
![]() |
![]() |
#15 | |||
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Добрый вечер, Legich5
![]() Привет, sakatgg ![]() 1. Да uvc2http - данной системе конечно не нужен - впрочем предлагайте свои варианты ![]() Очень соблазнительно дать роутеру полноценный функционал видео регистратора. У меня патч работал. Нагрузка на железо по показаниям top снизилась при движении в кадре - это было видно, я вам описал. 2. 3. 4. Вообщем мне нужно Цитата:
Сделаю, это конечно займет время... У меня сейчас компиляция идет, смогу чуть позже ![]() http://habrahabr.ru/post/171213/ 5. БД там насколько я помню MySQL что-то вроде того, это вроде все отключено. 6. Цитата:
98-99% - был После вашего патча uvc. Цитата:
=== Может вам стоит сделать свою шапку ![]() ![]() Или здесь расписать, admin сможет поправить как лучше ![]() Последний раз редактировалось sunny; 07.11.2015 в 21:24. |
|||
![]() |
![]() |
![]() |
#16 | |
Senior Member
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 990 ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
![]() Конфиг сейчас Код:
config uvc2http 'core' option device '/dev/video0' option buffers '4' option width '1280' option height '720' option fps '30' option port '8081' Последний раз редактировалось sakatgg; 07.11.2015 в 21:13. |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Кстати все кодеки ffmpeg-a:
Код:
root@***:/# ffmpeg -codecs ffmpeg version 2.6.2 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47390) configuration: --enable-cross-compile --cross-prefix=mipsel-openwrt-linux-uclibc- --arch=mipsel --target-os=linux --prefix=/usr --pkg-config=pkg-config --enable-shared --enable-static --enable-small --enable-pthreads --enable-zlib --disable-runtime-cpudetect --disable-doc --disable-debug --enable-gpl --enable-version3 --disable-altivec --disable-amd3dnow --disable-amd3dnowext --disable-mmx --disable-mmxext --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-avx --disable-xop --disable-fma3 --disable-fma4 --disable-avx2 --disable-vfp --disable-neon --disable-inline-asm --disable-yasm --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --disable-mipsfpu --disable-dxva2 --disable-lzma --disable-vaapi --disable-vda --disable-vdpau --disable-outdevs libavutil 54. 20.100 / 54. 20.100 libavcodec 56. 26.100 / 56. 26.100 libavformat 56. 25.101 / 56. 25.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 11.102 / 5. 11.102 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ...I.. = Intra frame-only codec ....L. = Lossy compression .....S = Lossless compression ------- D.VI.. 012v D.V.L. 4xm D.VI.S 8bps .EVIL. a64_multi (encoders: a64multi ) .EVIL. a64_multi5 (encoders: a64multi5 ) D.V..S aasc D.VIL. aic DEVI.S alias_pix DEVIL. amv D.V.L. anm D.V.L. ansi D.V..S apng DEVIL. asv1 DEVIL. asv2 D.VIL. aura D.VIL. aura2 D.V... avrn DEVI.. avrp D.V.L. avs DEVI.. avui DEVI.. ayuv D.V.L. bethsoftvid D.V.L. bfi D.V.L. binkvideo D.VI.. bintext DEVI.S bmp D.V..S bmv_video D.VI.S brender_pix D.V.L. c93 D.V.L. cavs D.V.L. cdgraphics D.VIL. cdxl DEV.L. cinepak DEVIL. cljr D.VI.S cllc D.V.L. cmv (decoders: eacmv ) D.V... cpia D.V..S cscd (decoders: camstudio ) D.VIL. cyuv D.V.L. dfa D.V.LS dirac DEVIL. dnxhd DEVI.S dpx D.V.L. dsicinvideo DEVIL. dvvideo D.V..S dxa D.VI.S dxtory D.V.L. escape124 D.V.L. escape130 D.VILS exr DEV..S ffv1 DEVI.S ffvhuff D.V.L. fic DEV..S flashsv DEV.L. flashsv2 D.V..S flic DEV.L. flv1 (decoders: flv ) (encoders: flv ) D.V..S fraps D.VI.S frwu D.V.L. g2m DEV..S gif DEV.L. h261 DEV.L. h263 D.V.L. h263i DEV.L. h263p D.V.LS h264 D.V.L. hevc D.V.L. hnm4video D.VIL. hqx DEVI.S huffyuv D.V.L. idcin (decoders: idcinvideo ) D.VI.. idf D.V.L. iff_byterun1 (decoders: iff ) D.V.L. iff_ilbm (decoders: iff ) D.V.L. indeo2 D.V.L. indeo3 D.V.L. indeo4 D.V.L. indeo5 D.V.L. interplayvideo DEVILS jpeg2000 DEVILS jpegls D.VIL. jv D.V.L. kgv1 D.V.L. kmvc D.VI.S lagarith .EVI.S ljpeg D.VI.S loco D.V.L. mad (decoders: eamad ) D.VIL. mdec D.V.L. mimic DEVIL. mjpeg D.VIL. mjpegb D.V.L. mmvideo D.V.L. motionpixels DEV.L. mpeg1video DEV.L. mpeg2video (decoders: mpeg2video mpegvideo ) DEV.L. mpeg4 ..V.L. mpegvideo_xvmc D.V.L. msa1 D.V.L. msmpeg4v1 DEV.L. msmpeg4v2 DEV.L. msmpeg4v3 (decoders: msmpeg4 ) (encoders: msmpeg4 ) D.V..S msrle D.V.L. mss1 D.VIL. mss2 DEV.L. msvideo1 D.VI.S mszh D.V.L. mts2 D.VIL. mvc1 D.VIL. mvc2 D.V.L. mxpeg D.V.L. nuv D.V.L. paf_video DEVI.S pam DEVI.S pbm DEVI.S pcx DEVI.S pgm DEVI.S pgmyuv D.VIL. pictor DEV..S png DEVI.S ppm DEVIL. prores (decoders: prores prores_lgpl ) (encoders: prores prores_aw prores_ks ) D.VIL. ptx D.VI.S qdraw D.V.L. qpeg DEV..S qtrle DEVI.S r10k DEVI.S r210 DEVI.S rawvideo D.VIL. rl2 DEV.L. roq (decoders: roqvideo ) (encoders: roqvideo ) D.V.L. rpza DEV.L. rv10 DEV.L. rv20 D.V.L. rv30 D.V.L. rv40 D.V.L. sanm DEVI.S sgi D.VI.S sgirle D.V.L. smackvideo (decoders: smackvid ) D.V.L. smc D.V... smv (decoders: smvjpeg ) DEV.LS snow D.VIL. sp5x DEVI.S sunrast DEV.L. svq1 D.V.L. svq3 DEVI.S targa D.VI.. targa_y216 D.V.L. tgq (decoders: eatgq ) D.V.L. tgv (decoders: eatgv ) D.V.L. theora D.VIL. thp D.V.L. tiertexseqvideo DEVI.S tiff D.VIL. tmv D.V.L. tqi (decoders: eatqi ) D.V.L. truemotion1 D.V.L. truemotion2 D.V..S tscc (decoders: camtasia ) D.V.L. tscc2 D.VIL. txd D.V.L. ulti (decoders: ultimotion ) DEVI.S utvideo DEVI.S v210 D.VI.S v210x DEVI.. v308 DEVI.. v408 DEVI.S v410 D.V.L. vb D.VI.S vble D.V.L. vc1 D.V.L. vc1image D.VIL. vcr1 D.VIL. vixl (decoders: xl ) D.V.L. vmdvideo D.V..S vmnc D.V.L. vp3 D.V.L. vp5 D.V.L. vp6 D.V.L. vp6a D.V.L. vp6f D.V.L. vp7 D.V.L. vp8 D.V.L. vp9 D.VILS webp DEV.L. wmv1 DEV.L. wmv2 D.V.L. wmv3 D.V.L. wmv3image D.VIL. wnv1 D.V.L. ws_vqa (decoders: vqavideo ) D.V.L. xan_wc3 D.V.L. xan_wc4 D.VI.. xbin DEVI.S xbm DEVIL. xface DEVI.S xwd DEVI.. y41p D.V.L. yop DEVI.. yuv4 D.V..S zerocodec DEVI.S zlib DEV..S zmbv D.A.L. 8svx_exp D.A.L. 8svx_fib DEA.L. aac D.A.L. aac_latm DEA.L. ac3 (decoders: ac3 ac3_fixed ) (encoders: ac3 ac3_fixed ) D.A.L. adpcm_4xm DEA.L. adpcm_adx D.A.L. adpcm_afc D.A.L. adpcm_ct D.A.L. adpcm_dtk D.A.L. adpcm_ea D.A.L. adpcm_ea_maxis_xa D.A.L. adpcm_ea_r1 D.A.L. adpcm_ea_r2 D.A.L. adpcm_ea_r3 D.A.L. adpcm_ea_xas DEA.L. adpcm_g722 (decoders: g722 ) (encoders: g722 ) DEA.L. adpcm_g726 (decoders: g726 ) (encoders: g726 ) D.A.L. adpcm_g726le (decoders: g726le ) D.A.L. adpcm_ima_amv D.A.L. adpcm_ima_apc D.A.L. adpcm_ima_dk3 D.A.L. adpcm_ima_dk4 D.A.L. adpcm_ima_ea_eacs D.A.L. adpcm_ima_ea_sead D.A.L. adpcm_ima_iss D.A.L. adpcm_ima_oki DEA.L. adpcm_ima_qt D.A.L. adpcm_ima_rad D.A.L. adpcm_ima_smjpeg DEA.L. adpcm_ima_wav D.A.L. adpcm_ima_ws DEA.L. adpcm_ms D.A.L. adpcm_sbpro_2 D.A.L. adpcm_sbpro_3 D.A.L. adpcm_sbpro_4 DEA.L. adpcm_swf D.A.L. adpcm_thp D.A.L. adpcm_vima (decoders: adpcm_vima vima ) D.A.L. adpcm_xa DEA.L. adpcm_yamaha DEA..S alac D.A.L. amr_nb (decoders: amrnb ) D.A.L. amr_wb (decoders: amrwb ) D.A..S ape D.A.L. atrac1 D.A.L. atrac3 D.A.L. atrac3p (decoders: atrac3plus ) D.A.L. avc (decoders: on2avc ) D.A.L. binkaudio_dct D.A.L. binkaudio_rdft D.A.L. bmv_audio ..A.L. celt DEA.L. comfortnoise D.A.L. cook D.A.L. dsd_lsbf D.A.L. dsd_lsbf_planar D.A.L. dsd_msbf D.A.L. dsd_msbf_planar D.A.L. dsicinaudio D.A.L. dss_sp (decoders: DSS SP ) DEA.LS dts (decoders: dca ) (encoders: dca ) ..A.L. dvaudio DEA.L. eac3 D.A.L. evrc DEA..S flac DEA.L. g723_1 D.A.L. g729 D.A.L. gsm D.A.L. gsm_ms D.A.L. iac ..A.L. ilbc D.A.L. imc D.A.L. interplay_dpcm D.A.L. mace3 D.A.L. mace6 D.A.L. metasound D.A..S mlp D.A.L. mp1 (decoders: mp1 mp1float ) DEA.L. mp2 (decoders: mp2 mp2float ) (encoders: mp2 mp2fixed ) D.A.L. mp3 (decoders: mp3 mp3float ) D.A.L. mp3adu (decoders: mp3adu mp3adufloat ) D.A.L. mp3on4 (decoders: mp3on4 mp3on4float ) D.A..S mp4als (decoders: als ) D.A.L. musepack7 (decoders: mpc7 ) D.A.L. musepack8 (decoders: mpc8 ) DEA.L. nellymoser D.A.L. opus D.A.L. paf_audio DEA.L. pcm_alaw D.A..S pcm_bluray D.A..S pcm_dvd DEA..S pcm_f32be DEA..S pcm_f32le DEA..S pcm_f64be DEA..S pcm_f64le D.A..S pcm_lxf DEA.L. pcm_mulaw DEA..S pcm_s16be DEA..S pcm_s16be_planar DEA..S pcm_s16le DEA..S pcm_s16le_planar DEA..S pcm_s24be DEA..S pcm_s24daud DEA..S pcm_s24le DEA..S pcm_s24le_planar DEA..S pcm_s32be DEA..S pcm_s32le DEA..S pcm_s32le_planar DEA..S pcm_s8 DEA..S pcm_s8_planar DEA..S pcm_u16be DEA..S pcm_u16le DEA..S pcm_u24be DEA..S pcm_u24le DEA..S pcm_u32be DEA..S pcm_u32le DEA..S pcm_u8 D.A.L. pcm_zork D.A.L. qcelp D.A.L. qdm2 ..A.L. qdmc DEA.L. ra_144 (decoders: real_144 ) (encoders: real_144 ) D.A.L. ra_288 (decoders: real_288 ) D.A..S ralf DEA.L. roq_dpcm DEA..S s302m D.A..S shorten D.A.L. sipr D.A.L. smackaudio (decoders: smackaud ) ..A.L. smv D.A.L. sol_dpcm DEA... sonic .EA... sonicls ..A.L. speex D.A..S tak D.A..S truehd D.A.L. truespeech DEA..S tta D.A.L. twinvq D.A.L. vima (decoders: adpcm_vima vima ) D.A.L. vmdaudio DEA.L. vorbis ..A.L. voxware D.A... wavesynth DEA.LS wavpack D.A.L. westwood_snd1 (decoders: ws_snd1 ) D.A..S wmalossless D.A.L. wmapro DEA.L. wmav1 DEA.L. wmav2 D.A.L. wmavoice D.A.L. xan_dpcm ..D... bin_data ..D... dvd_nav_packet ..D... klv ..D... otf ..D... timed_id3 ..D... ttf DES... ass DES... dvb_subtitle (decoders: dvbsub ) (encoders: dvbsub ) ..S... dvb_teletext DES... dvd_subtitle (decoders: dvdsub ) (encoders: dvdsub ) D.S... eia_608 (decoders: cc_dec ) D.S... hdmv_pgs_subtitle (decoders: pgssub ) D.S... jacosub D.S... microdvd DES... mov_text D.S... mpl2 D.S... pjs D.S... realtext D.S... sami ..S... srt DES... ssa D.S... stl DES... subrip (decoders: srt subrip ) (encoders: srt subrip ) D.S... subviewer D.S... subviewer1 D.S... text D.S... vplayer DES... webvtt DES... xsub http://www.linux.org.ru/forum/development/11472891 === Я взял ролик HD 720 разбил его на *.png - сейчас перекидываю их на Яндекс диск. Потом попробую собрать из них видео с помощью ffmpeg c прошивки с Вашим патчем U5. Делаю скрипт: Код:
#!/bin/sh ffmpeg -r 25 -y -i "/mnt/ya/123/_%d.png" /mnt/ya/123/output.avi А в терминале по ssh буду смотреть top Последний раз редактировалось sunny; 07.11.2015 в 22:58. |
![]() |
![]() |
![]() |
#18 |
Junior Member
Регистрация: 05.11.2015
Сообщений: 26
Вес репутации: 0 ![]() |
![]()
Добрый день, Sakatgg
Видимо ваша камера не поддерживает автофокус. Попробуйте в файле AppMain.cpp строку 94 config.GrabberCfg.SetupCamera = SetupCamera; заменить на config.GrabberCfg.SetupCamera = nullptr; Пересобрать uvc2http и запустить его на роутере. И еще момент: конфиг в /etc/config используется только демоном. При запуске из консоли используются параметры по-умолчанию. Их можно изменить параметрами. Последний раз редактировалось Legich5; 07.11.2015 в 22:08. Причина: Добавка. |
![]() |
![]() |
![]() |
#19 | |
Junior Member
Регистрация: 05.11.2015
Сообщений: 26
Вес репутации: 0 ![]() |
![]()
Sunny,
Цитата:
Я немного озадачен уменьшением загрузки CPU которое вы зафиксировали после применения патча. По идее патч влияет только на потребление памяти. Выигрыш в загрузке CPU был только при использовании uvc2http вместо mjpg-streamer. Я не сразу понял что у вас за задача поэтому не обратил внимание. Возможно это был не совсем чистый эксперимент или что-то в этом духе. У motion есть опция включающая постоянную запись (emulate_motion). По идее все замеры производельности надо делать с ней. Но даже в этом случае загрузка может зависеть от видео (например если видео темное , мутное или не меняется то энкодер может зажать его немного быстрее). Выбор кодека - это отдельная тема, лучше зафиксировать какой-нибудь из рекомендуемых и изучать проблему без этого аспекта. Хотя он очень важен с точки зрения производительности все системы. |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я взял ролик HD 720 разбил его на *.png - сейчас перекидываю их на Яндекс диск.
Потом попробую собрать из них видео с помощью ffmpeg c прошивки с Вашим патчем U5. Делаю скрипт: Код:
#!/bin/sh ffmpeg -r 25 -y -i "/mnt/ya/123/_%d.png" /mnt/ya/123/output.avi А в терминале по ssh буду смотреть top === ffmpeg собирал видео из 31 картинки 1280х720 fsp 25 Примерно 40-50 секунд: uvc драйвер пропатчен, значение Ваше U5 Скриншоты top-a: === Код:
Возможно это был не совсем чистый эксперимент или что-то в этом духе. ![]() Я писал видео с внешней ip камеры - там постоянное движение. Скриншот по ссылке, за сутки до вашего патча: http://cyber-place.ru/showpost.php?p=28741&postcount=30 Последний раз редактировалось sunny; 07.11.2015 в 23:00. |
![]() |
![]() |
![]() |
Здесь присутствуют: 9 (пользователей: 0 , гостей: 9) | |
|
|