2016-04-06 2 views
5

Я просто застрял в создании пакетного файла для записи потока из CCTV. Раньше это работает на сервере Ubuntu в коде следующим образом:VLC сохранить поток в файл

cvlc -d --sout "#transcode{vcodec=FLV1,vb=512,fps=3,acodec=none,sfilter=marq{marquee='АБК %d.%m.%Y %H.%M.%S',opacity=200,size=20}}:std{access=file,mux=ffmpeg{mux=flv},dst=/storage/surveillance/$date/${name[$i]}/$curdate.flv}" --ttl=127 "http://[email protected]@cam_ip/cgi-bin/cmd/encoder?&${analog[$i]}&GET_STREAM" --http-reconnect --http-continuous --sout-mux-caching=1500 --udp-caching=6000 --tcp-caching=6000 

Я получил HTTP поток из камеры в MJPG, который я могу открыть из CMD с помощью этого

vlc.exe "http://[email protected]@cam_ip/cgi-bin/cmd/encoder?&$CHANNEL=1&GET_STREAM" 

Но я застрял, когда я пытаюсь сохраните его в файле, добавив его в предыдущую команду:

--sout "#transcode{vcodec=FLV1,vb=512,fps=3,acodec=none,sfilter=marq{marquee='АБК %date% %time%',opacity=200,size=20}}:std{access=file,mux=ffmpeg{mux=flv},dst=%archive%\%name%\%date%\%time%.flv}" 

VLC открыт, но нет выходного видео и файла в пути. Диск F - это локальный жесткий диск, логин и пароль - прямо на камеру. Пакет открывается из локального администратора.

Полный файл выглядит следующим образом:

:: Set encoding for cyrillyc symvols 
@chcp 866 

:: Some vars for easy edit in future 
:: Choosing cam 
:: set analog=CHANNEL=1 
set analog=CHANNEL=2 
:: set analog=CHANNEL=3 
:: set analog=CHANNEL=4 

:: Choose folder to save 
:: set name="2 этаж" 
set name="1 этаж" 
:: set name="Главный_вход" 
:: set name="1 этаж 2" 

:: Path to archive 
set archive="F:\Archive\Охрана" 

:: Move to vlc.exe folder 
cd "c:\Program Files (x86)\VideoLAN\VLC" 

:: Record Video 
vlc.exe --sout "#transcode{vcodec=FLV1,vb=512,fps=3,acodec=none,sfilter=marq{marquee='АБК %date% %time%',opacity=200,size=20}}:std{access=file,mux=ffmpeg{mux=flv},dst=%archive%\%name%\%date%\%time%.flv}" --ttl=127 "http://[email protected]@cam_ip/cgi-bin/cmd/encoder?&$%analog%&GET_STREAM" --http-reconnect --http-continuous --sout-mux-caching=1500 --udp-caching=6000 --tcp-caching=6000 
+1

Итак, на данный момент вы используете компьютер с Windows для этого? – Jonas

+1

Существует множество причин использования окон, а не только видеонаблюдения. Итак, да - Windows Server 2k8 r2. –

ответ

1

Ваша команда VLC неверна: она должна быть в «захвате источника - перекодировать» формат, а не наоборот. Pls следует за Streaming HowTo/Command Line Examples, см. Также FLV support. Кроме того, выход команды зависит от используемой версии VLC. Старая версия VLC2.2.2 может работать лучше с Cmd и позволяет использовать VLM Config file без ошибок вывода.

Как правило, прежде чем пытаться запустить VLC из пакета, попробуйте использовать те же параметры перекодировки в Windows через VLC GUI и посмотреть, может ли он правильно захватить и перекодировать вывод, и какая будет загрузка процессора. Следуйте transcode примерам команд, более here. Рассмотрите транскодирование в H264 или более новые кодеки для меньшего размера файла.

В случае высокой загрузки процессора, в качестве альтернативы попробуйте последнюю версию FFMpeg Zeranoe для Windows из-за частого снижения загрузки процессора и более высокого качества транскодирования по сравнению с VLC. Просмотрите их форум для правильных команд перекодирования examples. Примечание. VLC также использует пакет FFMPEG, но более старую версию. Windows FFMPEG использует DirectShow для захвата ввода веб-камеры USB, поэтому типичные команды отличаются от версий Linux, но могут выглядеть аналогичными для IPCams.

Для конкретной модели IPCam очень простой захват потока пакетного файл запускается из FFMPEG \ папки бин может выглядеть следующим образом (тестировался, но работает для моей модели IPCam с измененной строкой URL):

@echo off 
ffmpeg -f mjpeg -i^
"http://login:[email protected]_ip/cgi-bin/cmd/encoder?&$CHANNEL=1&GET_STREAM"^
-vcodec flv -q:v 1 -an K:\Videos\output.flv 
exit /b 

Другими типичный пример команды для захвата Foscam MJPEG IPCam:

ffmpeg -f mjpeg -i "http://Cam_IP:8080/videostream.cgi?user=[login]&pwd=[password]"^
-vcodec flv -q:v 1 -an K:\Videos\output.flv 

Проверить Camera Connection Database для правильных строк захвата URL в зависимости от модели IPCam. См. Также Transcoding MJPEG to FLV or MP4.

Смежные вопросы