holmes писал(а):Окончательно убедился что гстример делает неправильный MJPEG. Перепробовал кучу софта который читает IP камеры - ни одна софтина ничего не показала. Видимо поэтому и в админке флэш плеер ничего не показывает.
В общем тут надо копать в сторону разбирательства с настройками гстримера. Думаю если бы виртурилка из коробки могла становиться еще и IP камерой это сильно облегчило бы жизнь многим разработчикам.
В админке флеш плеер всё прекрасно показывал пока я сам что-то не сломал

И кстати всё приличные IP камеры стримят в H264, с чем виртурилка прекрасно и справляется. Кстати в админке флеш плеер специально MJPEG парсит. Раньше работало а ща да, не пашет почему-то.
VideoNet, к примеру

UPD> Кстати, если поток MJPEG в файл записать - VLC его прекрасно показывает
UPD> А гстример десктопный прекрасно показывает MJPEG поток с виртурилки

Вот жопой чую - где-то байтик какой-нить всё портит в остальных приложениях
UPD> О! Открылся поток через VLC! Ща перепроверю и если всё ок сскину цепочку
В общем, ключевым элементом оказался multipartmux, без него VLC поток не хочет кушать. В штатной прошивке его нету, так что придётся добавить ручками (в SDK собрать gst-plugins-good, включив пункт "multipart") ну или скачать
уже собранный файлик и скопировать его в /usr/lib/gstreamer-0.10
Цепочка на борту
- Код: Выделить всё
gst-launch -e v4l2src always-copy=false chain-ipipe=true decimate=2 ! capsfilter caps=video/x-raw-yuv,format='(fourcc)'NV12,width=1280,height=720,framerate='(fraction)'30 ! dmaiaccel ! dmaienc_mjpeg qValue=50 copyOutput=false fixTimestamp=true ! multipartmux ! tcpserversink port=8888 sync=false
Цепочка на десктопе (для приёма гстримером)
- Код: Выделить всё
gst-launch-0.10 tcpclientsrc host=192.168.1.61 port=8888 ! multipartdemux ! jpegdec ! autovideosink
Приём на VLC - тупо "Открыть URL", ввести
tcp://192.168.1.61:8888