Temat: mjpg-streamer nagrywanie

Witam

Do WNDR4300 mam podłączone dwie kamery. Podgląd live działa bez problemu przez wireguard na adresach 10.10.10.2:9090 i 10.10.10.2:9091

Chciałbym nagrywać to z routera o adresacji 10.10.10.1 na pendrive aby nagranie było fizycznie u mnie w domu.

Miałoby to działać w pętli. Docelowo będzie większy dysk. Na razie 32GB do testów.

ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9090/?action=stream" -t 30 -c copy -y /mnt/sdc1/xxx/test.mkv

Tym poleceniem nagrywa bardzo dobrze lecz nie umiem tego uruchomić w pętli i z dwóch kamer jednocześnie.

Ktoś robił coś podobnego? Da się to zrobić?

Z góry dziękuję za podpowiedzi.

Pozdrawiam

2

Odp: mjpg-streamer nagrywanie

Tzn? Uruchamiasz to po prostu dwa razy?

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

3

Odp: mjpg-streamer nagrywanie

Ogólnie testuję to z putty i pewnie jakbym drugie okno otworzył to by ruszyło.

Nawet jedna byłoby ok ale jak to zrobić w pętli?

4

Odp: mjpg-streamer nagrywanie

white true; do
ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9090/?action=stream" -t 30 -c copy -y /mnt/sdc1/xxx/test.mkv
done

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

5

Odp: mjpg-streamer nagrywanie

Niestety, nie rozumiem.

6

Odp: mjpg-streamer nagrywanie

Czego nie rozumiesz?

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

7

Odp: mjpg-streamer nagrywanie

Wydaję polecenie w putty i nagrywa

ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9090/?action=stream" -t 30 -c copy -y /mnt/sdc1/xxx/test.mkv

Ty napisałeś

white true; do
ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9090/?action=stream" -t 30 -c copy -y /mnt/sdc1/xxx/test.mkv
done

Co mam z tym zrobić? Tego nie rozumiem

8

Odp: mjpg-streamer nagrywanie

Zrób skrypt w którym umieść w/w polecenie i uruchamiaj skrypt. Ew możesz to uruchomić w konsoli, jako jednolinijkowiec

white true; do ffmpeg -use_wallclock_as_timestamps 1 -i "[url]http://10.10.10.2:9090/?action=stream[/url]" -t 30 -c copy -y /mnt/sdc1/xxx/test.mkv; done
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: mjpg-streamer nagrywanie

Dobrze, skrypt zrobiłem zasadniczo 2 ale jednocześnie nie chce nagrywać dwóch streamów.

Pierwszy mam taki

#!/bin/sh

DATE=$(date +"%Y-%m-%d_%H_%M-%s%N")

white true;
ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9090/?action=stream" -t 59 -c copy -y /mnt/sdc1/xxx/$DATE.mkv

drugi taki

#!/bin/sh

DATE=$(date +"%Y-%m-%d_%H_%M-%s%N")

white true;
ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9091/?action=stream" -t 119 -c copy -y /mnt/sdc1/xxx/$DATE.mkv

Dałem milisekundy aby pliki się nie dublowały.

10

Odp: mjpg-streamer nagrywanie

W cronie ustawiłem odpowiednio dla skryptów powtarzalność ale jakoś nie zazębiają się.

Muszę to dobrze jakoś ustawić bo czasami lecą jednocześnie.

Teraz czy jak pendrive się zapełni to nadpisze mi pliki?

11

Odp: mjpg-streamer nagrywanie

Nie, po prostu zapełni pendrive i nie zrobić nic nowego.

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

12

Odp: mjpg-streamer nagrywanie

Już wiem w czym problem.

speed=1.34x

Ten parametr zmienia się i niestety czas nagrywania nie jest taki jak czas ustawiony dla długości nagrania.

Teraz muszę to jakoś ogarnąć bo skrypt nie chce startować gdy jest uruchomiony.

Można jakoś po zapełnieniu nośnika wykonać format skryptem?

13

Odp: mjpg-streamer nagrywanie

Można. A nie lepiej po prostu usuwać coś co jest np. sprzed tygodnia? To w cronie ograrniesz.

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

14

Odp: mjpg-streamer nagrywanie

można  spróbować dodać do  etc/rc.local.
slep 10 ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9090/?action=stream" -t 30 -c copy -y /mnt/sdc1/xxx/test.mkv
slep 15 ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9091/?action=stream" -t 30 -c copy -y /mnt/sdc1/xxx/test.mkv
exit 0
wtedy uruchomi się każdorazowo po starcie routera

15

Odp: mjpg-streamer nagrywanie

Wiem, że można opóźnić start ale... smile

Mimo, że ffmpeg ma zdefiniowane nagrywanie powiedzmy 30s to ono podczas "falowania" prędkości może trwać 30-kilka i wtedy cron nie uruchomi skryptu bo wykryje, że jest uruchomiony. To o to chodzi.

16

Odp: mjpg-streamer nagrywanie

a nie lepiej nagrywac  na  routerze gdzie masz te kamerki  a nie na zdalnej  ?   - ja jak ustawie  segment_time 60 to nagrywa mi np filmiki po 60sek  .Rozumie ze chcesz tak  nagrywam 30 sek jak nagra nagrywa od nowa  nastepny film 30 sek  itd . ale  mozna w samym ffmegu ustawic długosc nagrania 

segment @ 0x76d3f330] Opening '2020-09-19-19-21-40.mp4' for writinged=2.01x    
[segment @ 0x76d3f330] Opening '2020-09-19-19-22-15.mp4' for writinged=1.86x    
[segment @ 0x76d3f330] Opening '2020-09-19-19-22-45.mp4' for writinged= 1.9x    
[segment @ 0x76d3f330] Opening '2020-09-19-19-23-15.mp4' for writinged=1.93x    
[segment @ 0x76d3f330] Opening '2020-09-19-19-23-47.mp4' for writinged=1.92x    
[segment @ 0x76d3f330] Opening '2020-09-19-19-24-17.mp4' for writinged=1.93x    
[segment @ 0x76d3f330] Opening '2020-09-19-19-24-47.mp4' for writinged=1.94x    
[segment @ 0x76d3f330] Opening '2020-09-19-19-25-17.mp4' for writinged=1.94x    

i sam  sobie  bedzie ten czas liczył

17

Odp: mjpg-streamer nagrywanie

Nagrywać musi ten w domu bo co mi z nagrania jak ktoś dziabnie router widząc kamery smile tak sobie myślę smile

Sprawdzę z tą opcją smile

18

Odp: mjpg-streamer nagrywanie

w rc.local mam tak

sleep 60 
/bin/nagrywanie.sh
sleep 70
/bin/nagrywanie2.sh

exit 0

nagrywanie.sh

#!/bin/sh


white true;

ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9091/?action=stream"  -f segment -strftime 1 -segment_time 300 -reset_timestamps 1 -segment_format mkv /mnt/sdc1/xxx/"%Y-%m-%d_%H-%M-%S".mkv

nagrywanie2.sh

#!/bin/sh



white true;

ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9090/?action=stream"  -f segment -strftime 1 -segment_time 300 -reset_timestamps 1 -segment_format mkv /mnt/sdc1/xxx/"%Y-%m-%d_%H-%M-%S".mkv

Niestety przy starcie uruchamia się tylko nagrywanie.sh do tego samba4 przestała startować, muszę ją ręcznie zrestartować smile

Gdy oba skrypty uruchomię z luci to nagrywanie leci i pętlę robi co 5 min smile

Co zrobiłem źle?

19 (edytowany przez Cezary 2020-09-20 07:08:02)

Odp: mjpg-streamer nagrywanie

Zły skrypt jest. brakuje ci "do" i done na końcu, popsułeś to co napisałem. Ponad to ten skrypt musisz puścić w tle bo to pętla i nigdy nie pozwoli się skończyć skryptowi.

Ale - jeżeli ffmpeg sam to robi w segmentach to pętla ci nie jest potrzebna...

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

20

Odp: mjpg-streamer nagrywanie

dokładnie jek Cezary napisał  , dodam tylko ze  ffmpeg to potężne narzedzie  posiadjace mase obcji . Troche sie nim bawiełem   i tak  jezeli dasz obcje :
-t 300 -f segment -segment_time 60   to zrobi Ci  nagranie o długosci 300  podzielone na 5 segmentów po 60 po czym ffmpeg zakonczy działanie .
tak to wyglada dla przykładu :

Input #0, mjpeg, from 'http://192.168.1.104:81/stream':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 320x240, 25 tbr, 1200k tbn, 25 tbc
[segment @ 0x76d00330] Opening 'capture-000.mp4' for writing
Output #0, segment, to 'capture-%03d.mp4':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 320x240, q=2-31, 25 tbr, 12800 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[segment @ 0x76d00330] Opening 'capture-001.mp4' for writing=N/A speed=   2x    
[segment @ 0x76d00330] Opening 'capture-002.mp4' for writing=N/A speed=1.99x    
[segment @ 0x76d00330] Opening 'capture-003.mp4' for writing=N/A speed=1.99x    
[segment @ 0x76d00330] Opening 'capture-004.mp4' for writing=N/A speed=1.99x    
frame= 7500 fps= 49 q=-1.0 Lsize=N/A time=00:04:59.96 bitrate=N/A speed=1.96x    
video:50254kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

oczywiscie jezeli kamerki maja mikrofony mozna tez nagrywac z dzwiekiem smile

21 (edytowany przez palibrzuch 2020-09-20 11:20:04)

Odp: mjpg-streamer nagrywanie

To ja już nic nie rozumiem. Jedno polecenie ffmpeg robi pętlę samo, nie musi się skrypt zapętlać.



Taki mam skrypt

#!/bin/sh
white true; do
ffmpeg -use_wallclock_as_timestamps 1 -i "http://10.10.10.2:9091/?action=stream"  -f segment -strftime 1 -segment_time 300 -reset_timestamps 1 -segment_format mkv /mnt/sdc1/xxx/"%Y-%m-%d_%H-%M-%S".mkv
done

Taki mam rc.local

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

chown root.root /mnt/sdb3
chmod 755 /mnt/sdb3
sleep 60
/bin/nagrywanie.sh
sleep 70
/bin/nagrywanie2.sh
exit 0

Przy restarcie routera wywala taki błąd

Sun Sep 20 12:11:00 2020 cron.info crond[2995]: USER root pid 4950 cmd /usr/bin/wireguard_watchdog
Sun Sep 20 12:11:25 2020 daemon.err uhttpd[3091]: luci: accepted login on / for root from 4.4.4.99
Sun Sep 20 12:11:46 2020 daemon.notice procd: /etc/rc.d/S95done: /bin/nagrywanie.sh: line 2: syntax error: unexpected "do"
Sun Sep 20 12:12:00 2020 cron.info crond[2995]: USER root pid 5279 cmd /usr/bin/wireguard_watchdog
Sun Sep 20 12:12:00 2020 cron.info crond[2995]: USER root pid 5280 cmd /usr/bin/wireguard_watchdog
Sun Sep 20 12:12:56 2020 daemon.notice procd: /etc/rc.d/S95done: /bin/nagrywanie2.sh: line 2: syntax error: unexpected "do"
Sun Sep 20 12:12:56 2020 daemon.info samba4-server: Legacy Protocols allowed, don't use this option for secure environments!
Sun Sep 20 12:12:56 2020 user.info : SIGNAL: Not enabling reaper

Samba4 nie startuje, co jeszcze nie startuje to na razie nie wiem, nie zauważyłem.

22 (edytowany przez palibrzuch 2020-09-20 11:37:37)

Odp: mjpg-streamer nagrywanie

Błąd jest w poleceniu nie white tylko while. Tak myślałem ale skopiowałem i tego się trzymałem.

Teraz tylko ten rc.local i jak uruchomić skrypt w tle?

edit
Puściłem z luci /bin/nagrywanie.sh i /bin.nagrywanie2.sh

nagrywa dwa pliki jednocześnie w logach czysto a nagrywanie leci

23

Odp: mjpg-streamer nagrywanie

while, while...

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

24

Odp: mjpg-streamer nagrywanie

skoro działa to ok - ( ale te  skrypty sa nie potrzebne )  . Jak juz  ponagrywasz pochwal sie ile zajmuje to miejsca z 24 godz nagrania i w jakiej rozdzielczosci jest to nagranie  , na jakim drugim routerze to nagrywasz  - czy pociagnie 24 czy sie zrestartuje

25

Odp: mjpg-streamer nagrywanie

Router w mieszkaniu to

Nazwa hosta    OpenWrt
Model urządzenia    IGEL Technology GmbH H820C
Architektura    Intel(R) Celeron(R) CPU 847 @ 1.10GHz
Wersja firmware    OpenWrt 19.07-SNAPSHOT r11144-2ca5a386ee / LuCI openwrt-19.07 branch git-20.221.53167-304ad04
Wersja kernela    4.14.187
Czas lokalny    2020-09-20 14:14:11

i to on właśnie nagrywa. Podłączony jest do WNDR4300 przez wireguard i do netgera podłączone są dwie kamerki. Jedna to hd3000 od microsoftu a druga to jakiś logitech pro 9000 czy jakoś tak.

Rozdzielczość nagrywania to 800x600 bo przy innej kamerki wariują i nie chcą działać jednocześnie.

Z obu kamer 5min to jakieś 15MB czyli niecałe 5GB z 24h

Resetowałem zdalnie roter w piwnicy i nagrywa ponownie sam smile

https://drive.google.com/drive/folders/ … sp=sharing

Tu nagrania bez światła i bez jak na razie specjalnych ustawień jeśli chodzi o ffmpeg. Muszę to wygooglować i ustawić trochę wyraźniej.

Jak na razie to tylko testy, nic więcej.