Temat: Przetwarzeania strumienia RSTP do zdjęć

Witam
Próbował ktoś już wydobyć ze strumienia RSTP (z wideorejestratora) zdjęcie ?
Posiadam wideorejestrator BCS 0804 AS i niestety nie ma on opcji cyklicznego wysyłania fotek na ftp'a. Jest tylko od detekcji ruchu. Jest tam telnet ale loginu i hasła nie znam ...

2

Odp: Przetwarzeania strumienia RSTP do zdjęć

http://ffmpeg.org/faq.html#How-do-I-enc … ovies_003f

Mając strumień możesz zapisywać obrazki, więc pewnie kombinacja z łapaniem jeden klatki czy start/stop na 1s i dało by się to zrobić. Takie teoretyczne rozważania.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Przetwarzeania strumienia RSTP do zdjęć

Akurat nie znam tego rejestratora, ale czasem da się normalnie wyciągnąć j-pega, bo on robi je dla przeglądarek, które nie obsługują active-X - sprawdź jak wyświetla obraz np. na FF.

Jeśli masz wysyłanie na ftp na detekcję ruchu, to może pokombinuj tak, żeby ustawić detekcję na maksymalną czułość (szumy na obrazie powinny ją wyzwalać) i będzie słał bez przerwy - albo z jakimś tam minimalnym interwałem. W jednym videoserwerze tak ustawiłem - maksymalnie słał co 5 sekund co mnie satysfakcjonowało.
Innym sposobem jest ustawienie pola detekcji na jakiś zegar czy migającą diodkę, która będzie widoczna w kamerze.
Z łapaniem strumienia rtsp i wyciąganiem obrazka bym się nie bawił - jak już to popracować nad pchaniem strumienia na serwis typu justin.tv.

4 (edytowany przez viper_lasser 2012-03-11 01:19:08)

Odp: Przetwarzeania strumienia RSTP do zdjęć

Mi właśnie potrzebna jest funkcja robienia zrzutów/zdjęć co np 1 minutę.

Poszukałem trochę po internecie i znalazłem wzmiankę o fswebcam
http://eko.one.pl/?p=openwrt-webcam
ale nie jestem pewien czy to obsługuje strumień rstp.

Znalazłem tutaj jeszcze ciekawy projekt
http://www.vassfamily.net/projects/Asan … Linux.html

Potrzebuję tylko coś co np 1 minutę będzie przez chwilę pobierało mi strumień wideo i robiło z tego 1 zdjęcie.

A może to podziała ?
http://ffmpeg.org/ffmpeg.html#Muxers

Tylko w jaki sposób najpierw zapisać np 2-3 sekundy strumienia gdzieś lokalnie w openwrt ?

Nie wiem czy przypadkiem ffserver nie umożliwia robienia cyklicznie fotek
Na tej stronie http://www.linux.pl/users/arek/logitech/ffserver.conf
znalazłem coś takiego.

##################################################################
# Example streams

########## Aby uruchomic dodatkowe strumienie nalezy usunac ########### 

# Multipart JPEG

#<Stream obraz.mjpg>
#Feed feed1.ffm
#Format mpjpeg
#VideoFrameRate 30
#VideoSize 640x480
#VideoIntraOnly
#NoAudio
#</Stream>


#Single JPEG

#<Stream obraz.jpg>
#Feed feed1.ffm
#Format jpeg
#VideoFrameRate 30 
#VideoIntraOnly
#VideoSize 640x480
#NoAudio
#</Stream>
http://www.linux.pl/users/arek/logitech/ffserver.conf

5

Odp: Przetwarzeania strumienia RSTP do zdjęć

Nie wiem po co tak kombinujesz. Jeśli rejestrator wysyła ci poprawnie zdjęcia na detekcję to tego się trzymaj. Z tego co pobieżnie przejrzałem instrukcję to zdjęcie może robić w trybie czas (!) , detekcja i alarm. Ostatecznie można podpiąć jakiś układ czasowy pod wejście alarmowe, gdyby z jakichś (niewiadomych) powodów funkcja czas nie działała. Ewentualnie możesz na routerze z OpenWrt postawić ftp i do niego słać na detekcję, a odsyłać na docelowy serwer tylko co 1 min. Jak detekcja nie wykryje zmian, to znaczy że na obrazie nic się nie zmieniło i śmiało możesz wysłać poprzedni albo żadnego.

6 (edytowany przez viper_lasser 2012-03-11 16:41:52)

Odp: Przetwarzeania strumienia RSTP do zdjęć

Sęk w tym że pisałem do sprzedawcy sprzętu i mi powiedział że funkcja czasowego robienia zdjęć na tym modelu jest dostępna tylko w zewnętrznym programie PSS. Inny wcześniej zapewniał że taką funkcję wideorejestrator będzie posiadał.

A funkcja robienia i wysyłania zdjęć na ftpa mi nie pasuje bo na ftpa trafia bardzo dużo zdjęć nawet pomimo pozostawienia tylko niektórych kwadratów do ustawienia czułości.
Połączenie do internetu jest wystawione na internecie mobilnym i w testach wyszło mi że w ciągu 1 minuty mam cykane zdjęcia co ok 7sek. Na serwerze zdalnym dostępu do crona nie mam i nie miałbym w ten sposób wyłowienia najnowszego zdjęcia.

Pomysł z detekcja i lokalnym ftp'em masz jednak dobry smile

Jaki układ czasowy pod wejście byś polecił ?

Skompilowałem i zainstalowałem na swoim routerze ffmpeg'a

Spróbowałem wyciągnąć jedno zdjęcie ale wyskakują mi jakieś błędy.

ffmpeg -i rtsp://212.77.7.133:80/h264lan.sdp -an -r 1 -s 320x240 'video.jpeg'

Czego może mi brakować. Mam zainstalowaną pełną bibliotekę libffmpeg-full.

root@OpenWrt:/www# ffmpeg -i rtsp://212.77.7.133:80/h264lan.sdp -an -r 1 -s 320x
240 'video.jpeg'
ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar 11 2012 14:54:43 with gcc 4.5.4 20110808 (prerelease)
  configuration: --enable-cross-compile --cross-prefix=mipsel-openwrt-linux-uclibc- --arch=mipsel --target-os=linux --prefix=/usr --enable-shared --enable-static --disable-debug --pkg-config=pkg-config --enable-gpl --enable-version3 --disable-asm --disable-doc --disable-dxva2 --enable-pthreads --disable-optimizations --enable-small --disable-stripping --enable-zlib
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[h264 @ 0x436340] negative number of zero coeffs at 19 5
[h264 @ 0x436340] error while decoding MB 19 5
[h264 @ 0x436340] concealing 80 DC, 80 AC, 80 MV errors
[h264 @ 0x436340] RTP: PT=61: bad cseq 0667 expected=f987
[h264 @ 0x436340] RTP: PT=61: bad cseq 075f expected=f987
[h264 @ 0x436340] concealing 93 DC, 93 AC, 93 MV errors
[rtsp @ 0x430410] max_analyze_duration 5000000 reached at 5015510
[rtsp @ 0x430410] Estimating duration from bitrate, this may be inaccurate

Seems stream 1 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 30.08 (361/12)
Input #0, rtsp, from 'rtsp://212.77.7.133:80/h264lan.sdp':
  Metadata:
    title           : Wirecast
  Duration: N/A, start: -1.032426, bitrate: N/A
    Stream #0.0: Audio: aac, 44100 Hz, stereo, s16
    Stream #0.1: Video: h264, yuv420p, 320x240, 30.08 tbr, 90k tbn, 180k tbc
Incompatible pixel format 'yuv420p' for codec 'mjpeg', auto-selecting format 'yuvj420p'
[buffer @ 0x462970] w:320 h:240 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:
[buffersink @ 0x42a3a0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x435f70] w:320 h:240 fmt:yuv420p -> w:320 h:240 fmt:yuvj420p flags:0x4
Output #0, image2, to 'video.jpeg':
  Metadata:
    title           : Wirecast
    encoder         : Lavf53.4.0
    Stream #0.0: Video: mjpeg, yuvj420p, 320x240, q=2-31, 200 kb/s, 90k tbn, 1 tbc
Stream mapping:
  Stream #0.1 -> #0.0
Press [q] to stop, [?] for help
frame=    0 fps=  0 q=0.0 size=      -0kB time=00:00:00.00 bitrate=   0.0kbits/s[h264 @ 0x436340] negative number of zero coeffs at 19 5
[h264 @ 0x436340] error while decoding MB 19 5
[h264 @ 0x436340] concealing 80 DC, 80 AC, 80 MV errors
frame=    1 fps=  0 q=1.6 size=      -0kB time=00:00:01.00 bitrate=  -0.2kbits/s[image2 @ 0x435220] Could not get frame filename number 2 from pattern 'video.jpeg'
av_interleaved_write_frame(): Invalid argument

7

Odp: Przetwarzeania strumienia RSTP do zdjęć

Może po kolei: pasuje do twojego rejestratora ta instrukcja? -  http://www.e-alarmy.pl/download/instrukcje/BCS_LE-A.pdf
Jeśli tak to strona 34 - tryb "czas", strona 35 Ogólne "zdjęcie [2] sek" (ustawisz sobie 60).
Nie wiem jak ustawia się, żeby na ftp szły tylko zdjęcia ( z instrukcji wynika, że "automatycznie kopiuje nagrania" ), ale skoro wysyła ci zdjęcia na detekcję to pewnie masz już ustawione.
Gdyby tamto jednak nie zadziałało to w detekcji jest jeszcze coś takiego jak "filtr drgania" - spróbuj ustawić np 60 sekund i maksymalnie czułą detekcję.
O kolejnych możliwościach porozmawiamy jak przetestujesz powyższe.

8

Odp: Przetwarzeania strumienia RSTP do zdjęć

wideo%d.jpg jak już ma być. Nie wideo.jpg

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Przetwarzeania strumienia RSTP do zdjęć

mrox napisał/a:

Może po kolei: pasuje do twojego rejestratora ta instrukcja? -  http://www.e-alarmy.pl/download/instrukcje/BCS_LE-A.pdf
Jeśli tak to strona 34 - tryb "czas", strona 35 Ogólne "zdjęcie [2] sek" (ustawisz sobie 60).
Nie wiem jak ustawia się, żeby na ftp szły tylko zdjęcia ( z instrukcji wynika, że "automatycznie kopiuje nagrania" ), ale skoro wysyła ci zdjęcia na detekcję to pewnie masz już ustawione.
Gdyby tamto jednak nie zadziałało to w detekcji jest jeszcze coś takiego jak "filtr drgania" - spróbuj ustawić np 60 sekund i maksymalnie czułą detekcję.
O kolejnych możliwościach porozmawiamy jak przetestujesz powyższe.

Ja mam dokładnie taki wideorejestrator

http://www.napad.pl/katalog/data/katalo … EASLEA.pdf

typ LE-AS
Na stronie 52 jest opisane jak ustawić zdjęcie w funkcji czasu. To doskonale wiem bo doczytałem sobie to w instrukcji.

Za to na stronie 43 jest napisane "8-kanałowy rejestrator serii LE-AS nie obsługuje funkcji zaplanowanych zdjęć."
i to chyba jest powód że pomimo wzmianki w instrukcji nie ma u mnie tej opcji.

10

Odp: Przetwarzeania strumienia RSTP do zdjęć

To sprawdź jeszcze tą funkcję "filtr drgań". Detekcja na maksa, jedno zdjęcie, prealarm - 0, filtr drgań 60s.

Ewentualnie wysyłaj na router, a w nim skrypt, który kasuje wszystkie piliki w katalogu ftp, a następnie wysyła pierwszy, który sie pojawi. Skrypt odpalany z crona co minutę.

11

Odp: Przetwarzeania strumienia RSTP do zdjęć

Mógłbyś podać ten skrypt ? Próbuję wyłapać najnowszy plik skryptem w bashu ale wyłożyłem się przy poleceniu printf.

Pozatym i tak potrzebuję wysłać na jakiś serwer plik który zawsze będzie miał ta samą nazwę.

12

Odp: Przetwarzeania strumienia RSTP do zdjęć

Ale po co ci najnowszy? Jeśli skasujesz wszystkie, to pierwszy jaki się pojawi będzie najnowszy. To jak nazywa te zdjęcia rejestrator? Numerki kolejne czy data w nazwie pliku? Skrypt może i mógłbym ci wymyślić, ale to chwilę potrwa.

13

Odp: Przetwarzeania strumienia RSTP do zdjęć

Obrazki te zapisywane są w folderach
2012/03/12 - od daty
i nazwa pliku to 12.54.46_R.jpg - od godziny włącznie z sekundami

14

Odp: Przetwarzeania strumienia RSTP do zdjęć

No to rzeczywiście zamotali. A jak zapisany jest niepełny plik? Ma rozszerzenie .jpg.part ? (to chyba ftp załatwia)

15

Odp: Przetwarzeania strumienia RSTP do zdjęć

Spróbuj coś takiego:

rm -r /tmp/ftp/* 
                                            #kasujemy wszystko

for l in 1 2 3; do 
                                            #trzy razy szukamy
  sleep 5 
                                            #poczekamy z 5 sekund
  for i in `find . -name "*.jpg" -type f`; do
    echo "znalazłem $i"
    cp $i /tmp/ftp/nazwa_docelowa.jpg 
                                            #kopiujemy sobie
    #tutaj wysyłamy skopiowany wputem czy czymś
    exit 1                                  #wychodzimy nawet jak by więcej znalazł
  done
  echo "nie znalazłem"

done

16

Odp: Przetwarzeania strumienia RSTP do zdjęć

@mrox - dzięki za wskazówki smile

17

Odp: Przetwarzeania strumienia RSTP do zdjęć

Jednak chciałbym zrobić sobie ten dekoder bo zmiana firmware'u nie poskutkowała - nie ma funkcji robienia zdjęć. Skrypt działa ale ten tl-mr3220 coś za często się zwiesza...

Mam taki skrypt w bashu

INPUT="rtsp://212.49.32.208:554/cam/realmonitor?channel=1&subtype=01&authbasic=bmFwYWQ6bmFwYWQ="
ffmpeg -i $INPUT -an -r 1 -s 320x240 video.jpg


root@user-VirtualBox:/home/user/Wideo# ./snapshot.sh
FFmpeg version 0.6.4-4:0.6.4-0ubuntu0.11.04.1, Copyright (c) 2000-2010 the Libav developers
  built on Jan  4 2012 16:09:40 with gcc 4.5.2
  configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
  WARNING: library configuration mismatch
  libavutil   configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
  libavcodec  configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
  libavformat configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
  libavdevice configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
  libavfilter configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
  libswscale  configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
  libpostproc configuration: --extra-version=4:0.6.4-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
  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
[h264 @ 0x9bb1350]missing picture in access unit
[rtsp @ 0x9bae420]Could not find codec parameters (Video: h264)
[rtsp @ 0x9bae420]Estimating duration from bitrate, this may be inaccurate
rtsp://212.49.32.208:554/cam/realmonitor?channel=1&subtype=01&authbasic=bmFwYWQ6bmFwYWQ=: could not find codec parameters

Na podstawie tego komunikatu
Could not find codec parameters (Video: h264)

chyba wynika że nie mam kodeków h264 tylko nie wiem jak je zainstalować
Nie wie ktoś czego może mi brakować ?

18

Odp: Przetwarzeania strumienia RSTP do zdjęć

Nic Ci nie brakuje. ffmpeg mu być z tym skompilowany.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: Przetwarzeania strumienia RSTP do zdjęć

Hmm to skąd może brać się ten błąd ?
Jak odtworzę sobie ten strumień vlc media playerem to chodzi to normalnie.

20

Odp: Przetwarzeania strumienia RSTP do zdjęć

Napisałem, masz ffmpeg dość stary i pewnie nie ma wszystkiego

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21

Odp: Przetwarzeania strumienia RSTP do zdjęć

vlc pracuje ponieważ ma wkompilowana  bibliotekę od dostepu do rtsp z logowaniem. Większość tego nie ma i trzeba sobie to dokompilować.
Nie pamietam teraz nazwy tej biblioteki coś jak live555 czy coś w podobie.
Rzadko co ma to wkompilowane. A ffmpeg tego z tego co pamietam nie miał dlatego na vlc się kiedyś bawiłem.
A rejestrator jak każdy. Trochę się ich nainstalowałem ale FTP nie korzystałem bo nie potrzebuję serii zdjęć bo pewnie tak to działa. Jednego raczej nie wyśle.

Ja raczej jakiś czas temu z różnym skutkiem transkodowałem vlc na flv i nawet to działało. Ze stabilnością to miało wiele do życzenia wtedy.

22 (edytowany przez rpc 2012-05-31 07:01:41)

Odp: Przetwarzeania strumienia RSTP do zdjęć

acha funcji czasu to jest opcja ustawienia nagrania od 0-23.59 oraz od poniedziałku do niedzieli. Jest to uniwersalne stwierdzenie.

23

Odp: Przetwarzeania strumienia RSTP do zdjęć

Tą dodatkową bibliotekę muszę jakoś doinstalować czy od nowa skompilować całego ffmpeg'a z biblioteką live555

24

Odp: Przetwarzeania strumienia RSTP do zdjęć

Skompilować jak już.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25

Odp: Przetwarzeania strumienia RSTP do zdjęć

Poleciałem wg tego tutoriala
http://diabl0.gazeta.ie/2008/12/instala … -debianie/
i na debianie pobiera mi obraz wg tego skryptu

INPUT="rtsp://212.49.32.208:554/cam/realmonitor?channel=1&subtype=01&authbasic=bmFwYWQ6bmFwYWQ="
ffmpeg -i $INPUT -an -r 1 -s 320x240 video.jpg

Co będzie mi potrzebne pod openwrt ?