видеопоток по RTSP (с вебкамеры)

Обсудить вопросы и проблемы с видео

Модератор: Модераторы разделов

Ответить
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

видеопоток по RTSP

Сообщение broom »

Задача: вещать в сеть видео с вебкамеры по протоколу RTSP.
В качестве сервера пытаюсь использовать ffserver, в качестве клиента — ffplay. Но если есть лучшие альтернативы, попробую и их.
Вещать видео из файла у меня получилось. А вот с видеокамеры никак.

Файл ffserver.conf сейчас такой:

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

Port 12345
RTSPPort 554
BindAddress 0.0.0.0

<Feed webcam.ffm>
        File /tmp/webcam.ffm
        FileMaxSize 200K
        Launch ffmpeg -s 640x480 -f video4linux2 -i /dev/video0 -vcodec mpeg2video
</Feed>

<Stream webcam>
        Feed webcam.ffm
        Format rtp
        VideoCodec mpeg2video
        VideoFrameRate 30
        VideoBufferSize 80000
        VideoBitRate 300
        VideoSize 640x480
        PreRoll 1
        NoAudio
</Stream>

<Stream file>
        Format rtp
        File "/storage/dualmonitor.avi"
        NoAudio
</Stream>


Поток "file" проигрывается через ffplay командой:

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

ffplay rtsp://localhost:554/file


Если запустить поток webcam, то ffplay выдаёт такое:

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

$ ffplay rtsp://localhost:554/webcam
FFplay version 0.6.3-rpmfusion, Copyright (c) 2003-2010 the FFmpeg developers
  built on May  5 2011 19:19:44 with gcc 4.5.1 20100924 (Red Hat 4.5.1-4)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i686 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --extra-version=rpmfusion --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --cpu=i686 --enable-runtime-cpudetect
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.19. 0 /  1.19. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
[rtsp @ 0xb2301f00]Could not find codec parameters (Video: mpeg1video)
[rtsp @ 0xb2301f00]Estimating duration from bitrate, this may be inaccurate
rtsp://localhost:554/webcam: could not find codec parameters


Что это за codec parameters, и где их нужно указать, никак не могу понять.

Файл /tmp/webcam.ffm пишется нормальный, mplayer его проигрывает.

В общем-то, я нигде не нашла примеров, как запускать живое видео вещаться по RTSP (кроме sample конфига на все случаи жизни: http://ffmpeg.org/sample.html), поэтому, возможно, что-то у меня совсем неправильно в конфиге.
Если кто-то в этом разбирался и может помочь, я была бы очень благодарна.
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
IMB
Сообщения: 2559
ОС: Debian

Re: видеопоток по RTSP

Сообщение IMB »

Давайте уточним, Вы хотите что бы камера сама отсылала контент или что бы клиент мог с неё забрать контент?
Если первое - то наверно лучше всего использовать мультикаст, если второе - на камере любой RTSP-сервер.
Например я использую второй вариант, RTSP-сервер построен с использованием live555.
И кстати, поток в каком виде (H264, MJPEG, MPEG4 ....) необходимо отдавать? Если простой MJPEG, то тут можно обойтись и без RTSP.
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: видеопоток по RTSP

Сообщение broom »

Простите, если путано объясняю. Только начала с этим разбираться.
RTSP — это обязательное условие.
Камера у меня самая простая, веб, подключается в компьютер по USB. Соответственно, как я понимаю, на компьютере мне нужен RTSP-сервер. А клиентом будет некий другой компьютер в этой же сети (или этот же самый).
В каком виде отдавать поток — безразлично.

live555 я смотрела. Файлы он вроде бы раздаёт, а как сделать, чтобы он отдавал поток с камеры?
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
IMB
Сообщения: 2559
ОС: Debian

Re: видеопоток по RTSP

Сообщение IMB »

broom писал(а):
22.07.2011 11:07
Камера у меня самая простая, веб, подключается в компьютер по USB.

Семён Семёнович... (с)
А я то уж подумал, что у Вас автономная камера. Может быть тогда Вам имеет смысл посмотреть на vlc?
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: видеопоток по RTSP

Сообщение broom »

На автономных камерах, как правило, и так есть RTSP-сервер встроенный.
А вообще, будут и автономные камеры, сейчас нужно сляпать прототип и разобраться, как это всё работает. Поэтому камера взята самая обычная.

Вот уж не хотелось связываться с мегакомбайном VLC, но попробовала. Файл застримил (правда, всё изображение зачем-то сделал зелёным), а с видеокамерой опять беда (выбрано Устройство захвата -> Video for Linux 2). Просто видео с камеры VLC отлично показывает (то есть захват видео работает).
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
IMB
Сообщения: 2559
ОС: Debian

Re: видеопоток по RTSP

Сообщение IMB »

broom писал(а):
22.07.2011 12:18
А вообще, будут и автономные камеры, сейчас нужно сляпать прототип и разобраться, как это всё работает. Поэтому камера взята самая обычная.

Вы можете описать всю задачу?
Если в конечном варианте Вам придётся работать с автономными камерами, то я бы рекомендовал начать работать именно с ними, так как в последствии могут всплыть "небольшие несоответствия".
Возможно Вам это поможет:
http://nokia5800.org.ru/forum/5-20-1
http://www.videolan.org/doc/streaming-howto/en/ch04.html
http://habrahabr.ru/blogs/soft/74471/
Спасибо сказали:
Ответить