Страница 1 из 1

Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-03-16 9:49:11
goshanecr
Товарищи добрый день!
Есть заведённые под фрёй камеры при помощи webcamd+pwcview+cuse4bsd..
Наблюдение организовано следующим образом:
1. с камеры снимается картинка при помощи

Код: Выделить всё

pwcview -h -d /dev/video0 -s vga -i 100 -c -1 -o /tmp/pic_1.jpg
2. И в браузере просто скриптом эта картинка обновляется.
Это вариант наблюдения очень на скорую и корявую руку. Хотел сделать вещание при помощи ffmpeg или vlc, но устройство /dev/video0 которое создаёт webcamd под фрёй, не поддерживает какие-то там операции и работать с ним поэтому ffmpeg и vlc не хотят, так же как и skype и другие многие проги.
Поэтому хочу спросить, а можно ли как то организовать вещание при помощи ffmpeg'а или vlc чтобы они из получающихся картинок организовывали поток?
Я пробовал делать чтобы pwcview создавал картинки с именами: img_001.jpg, img_002 и т.д. а ffmpeg с них уже создавал видео поток, но проблема в том, что ffmpeg даже если ему указать fps потока, преобразует сразу все картинки какие находит и с той скоростью с какой позволяют мощности компа и останавливается после обработки всех картинок, вещая полученную видяху.
Скажите, есть ли какое-то решение этой загвоздки?

Re: Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-03-25 12:53:34
Alex Keda
каким-то макаром на stdin их ему вкармливать чтоли...

Re: Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-03-25 15:07:59
goshanecr
Я уже сделал грамотней. pwcview в режиме детекта движений отдаёт сырой raw видео поток на stdout, который и скармливается тут же ffmpeg'у . Всё работает, 3 камеры и не жужжат. :)

Re: Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-06-28 22:26:42
bsam
goshanecr писал(а):Я уже сделал грамотней. pwcview в режиме детекта движений отдаёт сырой raw видео поток на stdout, который и скармливается тут же ffmpeg'у . Всё работает, 3 камеры и не жужжат. :)
А точную команду привести можно? Что-то уменя ffmpeg не работает.

Re: Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-06-30 10:27:21
k0s
а как загрузка проца ? у меня на 98 процентов сьедает..

Re: Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-06-30 10:57:17
goshanecr

Код: Выделить всё

pwcview -hkr -s vga -u 100 -l 50 -f ${FPS} -d ${webcam} | ffmpeg -s 640x480 -r ${FPS} -f rawvideo \
                                -pix_fmt yuv420p -i -  -re -vcodec libx264 -vpre slow -crf 22 -threads 0 -s 640x480 \
                                -r ${FPS} http://127.0.0.1:30001/websad_${count}.ffm &
Это команда для организацие потокового вещания с камеры
А по поводу загрузки проца, на пентиуме 4 3ггц , и с включенным HTT (Это наоборот плохо, но там батарейка в биосе подохла и он периодически сбрасывает настройки и HTT оказывается включенным). Без гипертрейдинга загрузка меньше.
2 камеры.

Код: Выделить всё

last pid:  8690;  load averages:  3.08,  2.85,  2.95                                                                                    up 0+05:51:41  13:55:24
52 processes:  4 running, 48 sleeping
CPU: 62.8% user,  0.0% nice, 35.3% system,  0.0% interrupt,  1.9% idle
Mem: 67M Active, 77M Inact, 75M Wired, 20K Cache, 110M Buf, 765M Free
Swap: 2048M Total, 2048M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND                                                                                   
 1635 root          1  94    0 35240K 12912K RUN     1 256:04 76.56% ffserver
88714 root          1  87    0 15796K  3732K RUN     0  95:58 48.97% pwcview
 1649 root          1  36    0 39336K 17212K nanslp  1  81:32 24.37% ffmpeg
88715 root          1  30    0 39336K 17176K CPU0    0  34:26 15.28% ffmpeg
 1648 root          1  26    0 15796K  5704K pipdwt  1  41:50  9.18% pwcview
 1624 root          9 -51  r1F 25740K  5888K select  0  30:30  0.98% webcamd
 1607 root          9 -51  r1F 26508K  4264K select  0   8:48  0.00% webcamd

Re: Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-06-30 17:20:50
k0s
както всеравно многовато, транслирую vlc загрузка пока больше 5% не поднималась..

Re: Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-06-30 21:08:50
goshanecr
Здесь во-первых:
  • вещание с 2-х камер
  • во-вторых: гипертрейдинг крайне негативно влияет на производительность в FreeBSD
  • в третьих транслируете vlc что? Тут pwcview снимает картинку с камеры а затем кодирует её в видео поток.
  • и к тому же во что жмёте? Кодек, параметры?
  • Железо?

Re: Как реализовать потоковое вещание из набора jpeg'ов

Добавлено: 2011-07-01 10:01:46
k0s
motion->vlc->flv в flowplayer

Код: Выделить всё

cvlc -vv http://127.0.0.1:8081/stream.mjpeg --http-caching=10000 --sout '#transcode{vcodec=FLV1,vb=1500}:standard{mux=ffmpeg{mux=flv},access=http{mime=video/x-flv},dst=127.0.0.1:8090/stream.flv}'
Xeon E5620 гипертрейдинг тоже включен..