Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2015, 14:19   #31
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

Legich5
Цитата:
Попробуйте запустить ffmpeg в консоли - он показывает скорость кодирования прямо в ней.
Да

Код:
root@***:~# ffmpeg -r 25  -y -i "/mnt/ya/123/_%d.png" /mnt/ya/123/output.avi -report
ffmpeg started on 2015-11-08 at 14:17:01
Report written to "ffmpeg-20151108-141701.log"
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 r47400)
  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
Input #0, image2, from '/mnt/ya/123/_%d.png':
  Duration: 00:00:19.96, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24, 1280x720, 25 fps, 25 tbr, 25 tbn, 25 tbc
Output #0, avi, to '/mnt/ya/123/output.avi':
  Metadata:
    ISFT            : Lavf56.25.101
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1280x720, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.26.100 mpeg4
Stream mapping:
  Stream #0:0 -> #0:0 (png (native) -> mpeg4 (native))
Press [q] to stop, [?] for help
===

Цитата:
Возможно я не совсем понимаю, но это можно сделать используя только ffmpeg (https://trac.ffmpeg.org/wiki/Capture/Webcam).
Да можно конечно, но:

- писать нужно только движение - ffmpeg этого не умеет
- желательно накладывать дату и время на изображение - это ffmpeg вроде умеет..
- и не тратить много времени и ресурсов слабого железа роутера на все это - ffmpeg этим грешен
- ну и неплохо бы иметь возможность просмотра стрима удаленно или по локалке

А ссылка хороша :
https://trac.ffmpeg.org/wiki/Capture/Webcam
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок экрана от 2015-11-08 14:18:20.png
Просмотров: 134
Размер:	30.0 Кб
ID:	3250   Нажмите на изображение для увеличения
Название: Снимок экрана от 2015-11-08 14:23:25.png
Просмотров: 146
Размер:	27.4 Кб
ID:	3251  

Последний раз редактировалось sunny; 08.11.2015 в 14:36.
sunny вне форума   Ответить с цитированием
Старый 08.11.2015, 14:40   #32
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

Нашлись вроде логи

/www/log
/www/ffmpeg-20151108-141248.log
/www/ffmpeg-20151108-140018.log
/www/ffmpeg-20151108-140222.log


Могу выполнить тоже, на прошивке с вашим патчем со значением U10 - займет время
Если нужно, конечно ...
Вложения
Тип файла: zip ffmpeg-20151108-140222.log.zip (6.2 Кб, 47 просмотров)

Последний раз редактировалось sunny; 08.11.2015 в 14:54.
sunny вне форума   Ответить с цитированием
Старый 08.11.2015, 14:40   #33
sakatgg
Senior Member
 
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 989
sakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nice
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

Legich5
Цитата:
Нюанс: если вам удалось включить режим 1280х720х30 это не значит что вы получили 30 fps.
Через Fraps контролирую fps - четко реальных 30 показывает, при загрузке проца на 14-16%. Поток в 2 Мбайта/сек/ Статистика в VLC тоже пропуска кадров не показывает.

P.S. На mjpg-streamer поток в 2.3 Мбайта/сек, проц 18-20%, режим 1280х720х30

P.S.2 Выше тестировал на С270, пробую на С510 - mjpg-streamer 5 Мбайта/сек, проц - 30-44%
uvc2http - 4.3Мбайта/сек, проц -21-27%. С510 не прописана в uvc_driver.c, т.е. по логике на неё этот патч не действует, но прога uvc2http то работает, не пойму

Последний раз редактировалось sakatgg; 08.11.2015 в 15:53.
sakatgg вне форума   Ответить с цитированием
Старый 08.11.2015, 15:04   #34
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

Мое скромное имхо, как пользователя а не разработчика...
Если при компиляции прошивки вырезать из ffmpeg все лишнее, собрав облегченный вариант - возможно это прибавит скажем 10 fsp к конечному видео.

В принципе существующая система motion+ffmpeg работает хорошо, чем мощнее роутер тем лучше.
Но есть проблемы с поддержкой разрешений выше 640x480 и fsp не превышает значения 8 fsp при 640х480 - если отключить скриншоты (фото) движения и трансляцию стрима - у меня на Asus RT-N14U это так.

===

И самое главное, интересно почему с Вашим патчем:
- в топе нагрузка на железо реально меньше
- ролики создаются дольше
- у них низкое fsp значение 2

===

Запустил сборку видео на прошивке с Вашим патчем UVC драйвера, значение U10:
Код:
root@zx77:~# ffmpeg -r 25  -y -i "/mnt/ya/123/_%d.png" /mnt/ya/123/output.avi -report
ffmpeg started on 2015-11-08 at 15:26:44
Report written to "ffmpeg-20151108-152644.log"
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 r47374)
  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
Input #0, image2, from '/mnt/ya/123/_%d.png':
  Duration: 00:00:19.96, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24, 1280x720, 25 fps, 25 tbr, 25 tbn, 25 tbc
Output #0, avi, to '/mnt/ya/123/output.avi':
  Metadata:
    ISFT            : Lavf56.25.101
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1280x720, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.26.100 mpeg4
Stream mapping:
  Stream #0:0 -> #0:0 (png (native) -> mpeg4 (native))
Press [q] to stop, [?] for help

15:26:44 - начало
15:45:00 - окончание

18 минут 16 секунд

Источник:

500 кадров
1280x720
_d%.png

Полученное видео:
25 fsp ,
1978 битрейд
output.avi

Сравним, прошивка без патча UVC драйвера:
http://cyber-place.ru/showpost.php?p=28913&postcount=26

Лог теперь оказался в ./root
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок экрана от 2015-11-08 15:28:47.png
Просмотров: 153
Размер:	12.8 Кб
ID:	3253   Нажмите на изображение для увеличения
Название: Снимок экрана от 2015-11-08 15:29:49.png
Просмотров: 154
Размер:	13.8 Кб
ID:	3254   Нажмите на изображение для увеличения
Название: Снимок экрана от 2015-11-08 15:50:25.png
Просмотров: 136
Размер:	29.8 Кб
ID:	3255  
Вложения
Тип файла: zip ffmpeg-20151108-141248.log.zip (1.3 Кб, 38 просмотров)

Последний раз редактировалось sunny; 08.11.2015 в 15:53.
sunny вне форума   Ответить с цитированием
Старый 08.11.2015, 16:49   #35
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

sakatgg

Ну, что скажешь, как впечатления от стрима ?

Есть мысли, как это можно задействовать с пользой для дела

Имхо, надо попробывать в motion и ffmpeg покопаться на предмет наличия настроек MaxVideoFrameSize.

У motion-a в архиве есть файлы:

Видео:
- video.c
- video.h
- video2.c
- video_common.c
- video_freebsd.c
- video_freebsd.h

И стрим:
stream.c
stream.h

===

Цитата:
т.е. по логике на неё этот патч не действует, но прога uvc2http то работает, не пойму
Потому что имхо главное в патче эта строчка:

Код:
ctrl->dwMaxVideoFrameSize = ((u32)(frame->wWidth) * frame->wHeight * 2U) / 5U;
Я писал выше - "значения прошивок" U5 и U10.

Последний раз редактировалось sunny; 08.11.2015 в 18:07.
sunny вне форума   Ответить с цитированием
Старый 08.11.2015, 17:25   #36
sakatgg
Senior Member
 
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 989
sakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nice
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

Legich5
Цитата:
По этому логу тоже нельзя сказать. Так как в нем нет строк сделанных в процессе старта видеозахвата. Возможно долго ждали после запуска. Надо только запустить, увидеть видео и сразу снять лог.
После команды echo 0xffff > /sys/module/uvcvideo/parameters/trace (в конфиге уменьшил до 640х320х5) начинаются тормоза в консоли и быстро не получается, ждать проходиться пока курсор возвратиться
Цитата:
Видимо ваша камера не поддерживает автофокус. Попробуйте в файле AppMain.cpp строку 94
config.GrabberCfg.SetupCamera = SetupCamera;
заменить на
config.GrabberCfg.SetupCamera = nullptr;
Пересобрать uvc2http и запустить его на роутере.
Лучше изменить в архиве в /dl/uvc2http-*****.tar.gz !!! Удалить /build_dir/target-mips_34kc_uClibc-0.9.33.2/uvc2http и /bin и после делать make, иначе вероятнось что подрубяться малая , а после make clean она стирается в /build_dir/target-mips_34kc_uClibc-0.9.33.2/uvc2http/AppMain.cpp

Стемнело на улице fps автоматом понизился до 15, вроде как автор про это описано в статье
Цитата:
Ну, что скажешь, как впечатления от стрима ?
Так не понятно подрубился патч или нет, мож она и без него так выдает

Последний раз редактировалось sakatgg; 08.11.2015 в 17:42.
sakatgg вне форума   Ответить с цитированием
Старый 08.11.2015, 17:43   #37
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

Стрим motion-a по идее не зависит от ffmpeg
stream.h:
Код:
#ifndef _INCLUDE_STREAM_H_
#define _INCLUDE_STREAM_H_

struct stream_buffer {
    unsigned char *ptr;
    int ref;
    long size;
};

struct stream {
    int socket;
    FILE *fwrite;
    struct stream_buffer *tmpbuffer;
    long filepos;
    int nr;
    unsigned long int last;
    struct stream *prev;
    struct stream *next;
};

int stream_init(struct context *);
void stream_put(struct context *, unsigned char *);
void stream_stop(struct context *);

#endif /* _INCLUDE_STREAM_H_ */
Ну либо не патч, так "ее" ковырять надо

===

ffmpeg-2.6.2/libavcodec/mpegvideo.c
ffmpeg-2.6.2/libavcodec/mpegvideo.h

Последний раз редактировалось sunny; 08.11.2015 в 18:45.
sunny вне форума   Ответить с цитированием
Старый 08.11.2015, 20:26   #38
sakatgg
Senior Member
 
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 989
sakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nice
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

Legich5, Кое как удалось снять лог, заветной строки uvcvideo: dwMaxVideoFrameSize fixed to - нет
есть
uvcvideo: Stream 1 error event 07 00 len 4.
sunny
Цитата:
"значения прошивок" U5 и U10.
В толк не возьму что это такое
Вложения
Тип файла: txt dmesg.txt (92.0 Кб, 89 просмотров)

Последний раз редактировалось sakatgg; 08.11.2015 в 23:44.
sakatgg вне форума   Ответить с цитированием
Старый 08.11.2015, 23:54   #39
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

Цитата:
"значения прошивок" U5 и U10.
В толк не возьму что это такое
Зы, перепутал я местами балбес старый
5U и 10U:

Начну сначала:
Цитата:
Анализ кода драйвера и первый успех
Изучая код я пришел к выводу, что размер буфера спрашивается у камеры и моя камера возвращала размер несжатого кадра. Наверное это самое безопасное решение с точки зрения разработчиков камеры. Но оно же самое не оптимальное. Я решил, что для своего случая можно скорректировать необходимый размер буфера, используя экспериментальный коэффициент минимального сжатия. Я выбрал k=5. С таким значением у меня был запас порядка 20%.
Смотрим патч:
Код:
--- a/drivers/media/usb/uvc/uvc_video.c
+++ b/drivers/media/usb/uvc/uvc_video.c
@@ -113,6 +113,14 @@ static void uvc_fixup_video_ctrl(struct
 	if (frame == NULL)
 		return;
 
+	if ((format->flags & UVC_FMT_FLAG_COMPRESSED) &&
+	    (stream->dev->quirks & UVC_QUIRK_COMPRESSION_RATE)) {
+		/* It is expected that MJPEG compressed image at least 5 times less than uncompressed one */
+		ctrl->dwMaxVideoFrameSize = ((u32)(frame->wWidth) * frame->wHeight * 2U) / 5U;
+
+		uvc_printk(KERN_ERR, "dwMaxVideoFrameSize fixed to %d.\n", ctrl->dwMaxVideoFrameSize);
+	}
+
 	if (!(format->flags & UVC_FMT_FLAG_COMPRESSED) ||
 	     (ctrl->dwMaxVideoFrameSize == 0 &&
 	      stream->dev->uvc_version < 0x0110))
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -148,6 +148,7 @@
	#define UVC_QUIRK_PROBE_DEF		0x00000100
	#define UVC_QUIRK_RESTRICT_FRAME_RATE	0x00000200
	#define UVC_QUIRK_RESTORE_CTRLS_ON_INIT	0x00000400
+	#define UVC_QUIRK_COMPRESSION_RATE	0x00000800
	/* Format flags */
	#define UVC_FMT_FLAG_COMPRESSED		0x00000001
	#define UVC_FMT_FLAG_STREAM		0x00000002
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2102,6 +2102,16 @@ static struct usb_device_id uvc_ids[] =
	.driver_info		= UVC_QUIRK_PROBE_MINMAX },
+	/* Microdia Sonix USB 2.0 Camera */
+	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
+				| USB_DEVICE_ID_MATCH_INT_INFO,
+	.idVendor		= 0x0c45,
+	.idProduct		= 0x62c0,
+	.bInterfaceClass	= USB_CLASS_VIDEO,
+	.bInterfaceSubClass	= 1,
+	.bInterfaceProtocol	= 0,
+	.driver_info		= UVC_QUIRK_IGNORE_VSI_IDX_OOR},
+				| UVC_QUIRK_COMPRESSION_RATE },
Где мы видим цифру 5 :
Строка кода добавляется в drivers/media/usb/uvc/uvc_video.c:
Код:
ctrl->dwMaxVideoFrameSize = ((u32)(frame->wWidth) * frame->wHeight * 2U) / 5U;
Я увеличивал это значение и до 10 ти - визуально стрим стал лучше, возможно потому что появилось описание моей конкретной камеры в драйвере.
Зато fsp видеороликов просело до 2.


Соответственно я собрал с нуля 2 прошивки с патчем драйвера UVC:

- со значением k=5
Код:
ctrl->dwMaxVideoFrameSize = ((u32)(frame->wWidth) * frame->wHeight * 2U) / 5U;
- со значением k=10
Код:
ctrl->dwMaxVideoFrameSize = ((u32)(frame->wWidth) * frame->wHeight * 2U) / 10U;

Последний раз редактировалось sunny; 09.11.2015 в 00:22.
sunny вне форума   Ответить с цитированием
Старый 09.11.2015, 00:36   #40
sakatgg
Senior Member
 
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 989
sakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nicesakatgg is just really nice
По умолчанию Re: Вебкамера, высокое разрешение, fsp и роутер со слабым железом

UVC_QUIRK_COMPRESSION_RATE - пришёл к выводу, что это аппаратная приблуда, включается там где её исключили из процесса, и если её нет изначально, то обломс
sakatgg вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:23. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика