2016-04-06 23 views
5

Po prostu utknąłem w tworzeniu pliku wsadowego do nagrywania strumienia z CCTV. Wcześniej to działa na serwerze Ubuntu w kodzie tak:VLC zapisuje strumień do pliku

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://camera[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 

Mam strumienia HTTP z aparatem w MJPG, które można otworzyć z cmd przy użyciu tej

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

Ale zatrzymany, kiedy próbują zapisz go do pliku dodając to do poprzedniego polecenia:

--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 jest otwarty, ale nie ma wyjścia wideo i pliku w ścieżce. Dysk F to lokalny dysk twardy, login i hasło to prawo do kamery. Partia jest otwierana od lokalnego administratora.

Pełny plik wygląda tak:

:: 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

W tej chwili używasz komputera z systemem Windows, aby to zrobić? – Jonas

+1

Istnieje kilka powodów, dla których warto używać okien, nie tylko CCTV. Tak, tak - Windows Server 2k8 r2. –

Odpowiedz

1

Twój Komenda OHP jest niepoprawna: powinien być w „chwytania źródłowego - transkodowanie” format, a nie odwrotnie. Pls śledzić Streaming HowTo/Command Line Examples, patrz także FLV support. Jak również, wynik polecenia zależy od wersji VLC. Starsza wersja VLC2.2.2 może działać lepiej z Cmd i pozwala używać VLM Config file bez błędów wyjściowych.

Ogólnie rzecz biorąc, przed próbą uruchomienia VLC z partii, spróbuj użyć tych samych opcji transkodowania w systemie Windows za pomocą VLC GUI i sprawdź, czy może on prawidłowo przechwytywać i transkodować dane wyjściowe oraz jakie będzie obciążenie procesora. Śledź przykłady poleceń transcode, więcej here. Rozważ transkodowanie do formatu H264 lub nowszych formatów kodeków dla mniejszego rozmiaru pliku.

W przypadku dużego obciążenia procesora, jako alternatywa wypróbuj najnowszą kompilację FFMpeg Zeranoe dla systemu Windows ze względu na często niższe obciążenie procesora i wyższą jakość transkodowania w porównaniu z VLC. Przejrzyj ich forum, aby uzyskać odpowiednie polecenia transkodowania examples. Uwaga, VLC również używa pakietu FFMPEG, ale jest starszą wersją. Konstrukcje FFMPEG systemu Windows używają DirectShow do przechwytywania wejścia kamery internetowej USB, więc typowe polecenia wyglądają inaczej niż kompilacje Linuksa, ale mogą wyglądać podobnie dla IPCams.

dla danego modelu IPCam bardzo prosty plik wsadowy przechwytywania strumienia uruchomić z folderu FFMPEG \ bin może wyglądać następująco (niesprawdzone, ale pracuje dla mojego modelu IPCam ze zmodyfikowanym URL String):

@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 

Another typowym przykładem polecenia dla wychwytywania 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 

Sprawdź Camera Connection Database dla prawidłowych ciągów przechwytywania adresów URL w zależności od modelu IPCam. Zobacz także Transcoding MJPEG to FLV or MP4.

Powiązane problemy