Portál AbcLinuxu, 9. května 2024 04:36


Dotaz: Nahravaní videa přes ffmpeg

9.7.2023 13:15 BigSandy
Nahravaní videa přes ffmpeg
Přečteno: 564×
Odpovědět | Admin
Zdravím Vás.

Hledam dobrou duši, co poradi - pomuže.

Potřebují nahravat video od 6:00 do 14:00

Asi nahravat 6 hodin vkuse je blbost.

Takto hodinu

ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.149:554/user=admin_password=xxxx_channel=1_stream=0.sdp?real_stream -codec:v copy -an -t 00:60:00 /media/M2_disk_1TB/KAMERY/KURNIK/video.mkv

1 Potřebuji, aby se v nazvu videa ukladal i datum a čas.

2 a zprovoznit přes Cron

Mam to spravně?

0 06 * * *

0 07 * * *

0 08 * * *

Děkuijí.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.7.2023 13:51 X
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nastrel. Cron:
0 * * * *
Skript se pusti kazdou hodinu v celou. Skript:
#!/bin/bash

DATE=$(date '+%Y-%m-%d-%H')

PATH="/media/M2_disk_1TB/KAMERY/KURNIK/video-$DATE.mkv"

ffmpeg \
  -rtsp_transport tcp \
  -i rtsp://192.168.1.149:554/user=admin_password=xxxx_channel=1_stream=0.sdp?real_stream \
  -codec:v copy \
  -an \
  -t 00:60:00 \
  $PATH
9.7.2023 15:05 BigSandy
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Děkují moc, ale to mi pojede 24 hod. Mi stači 6-14. Zbytečně to bude žrat misto. 1 hodina je 1GB

Ten nazev jsem si už pořešil.

/media/M2_disk_1TB/KAMERY/KURNIK/`date '+%Y-%m-%d-%H-%M-%S'`.mkv

Přes terminal to jede.

Nechce se mi to spouštět přes crona.

0 0 15 * * ? ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.149:554/user=admin_password=xxxxx_channel=1_stream=0.sdp?real_stream -codec:v copy -an -t 01:00:00 /media/M2_disk_1TB/KAMERY/KURNIK/`date '+%Y-%m-%d-%H-%M-%S'`.mkv

Jendа avatar 9.7.2023 15:55 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Děkují moc, ale to mi pojede 24 hod. Mi stači 6-14. Zbytečně to bude žrat misto. 1 hodina je 1GB
No tak si dej na začátek podmínku že skript skončí pokud date +%H není v povoleném rozsahu.
0 0 15 * * ? ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.149:554/user=admin_password=xxxxx_channel=1_stream=0.sdp?real_stream -codec:v copy -an -t 01:00:00 /media/M2_disk_1TB/KAMERY/KURNIK/`date '+%Y-%m-%d-%H-%M-%S'`.mkv
Nikdy jsem neviděl otazník ale možná je to validní, každopádně problém bude imho v tom, že cron nespouští své řádky způsobem, kdy by se expandovaly subpříkazy (to co je v ``). Osobně do crontabu nerad dávám složité konstrukce, vytvořím si skript na disku a volám ten.
Jendа avatar 9.7.2023 16:00 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
No tak si dej na začátek podmínku že skript skončí pokud date +%H není v povoleném rozsahu.
Pozor na chyták, že +%H je hodina s nulou na začátku, tedy například v 9 ráno je to 09, a standardní [ má tendenci to interpretovat jako číslo v osmičkové soustavě a pak řekne že to nejde načíst, protože 9 v osmičkové soustavě není. Asi by pomohlo date +%_H nebe +%k, ale jenom jsem si to přečetl v manuálu, použil jsem to možná jednou v životě.
9.7.2023 15:48 BigSandy
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Dotaz ohledně toho skriptu.

Normalně mi ffmpeg přes terminal funguje.

Když však spustim ten skript přes terminal, tak

/home/pi/skripty/kurnik: řádek 8: ffmpeg: příkaz nenalezen
Jendа avatar 9.7.2023 15:57 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Protože PATH je „systémová“ proměnná, ve které je normálně uloženo, kde se mají hledat spouštěné programy, a ty sis ji přepsal.
9.7.2023 16:15 BigSandy
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
No i když to moc nechapu, tak jinak.

Muj bash

#!/bin/bash

ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.149:554/user=admin_password=xxxx_channel=1_stream=0.sdp?real_stream -codec:v copy -an -t 01:00:00 /media/M2_disk_1TB/KAMERY/KURNIK/`date '+%Y-%m-%d-%H-%M-%S'`.mkv

Normalně ho přes terminal spustim a nahravam hodinu video.

Proč se mi nespustil přes crona?

0 0 16 * * ? /home/pi/skripty/kurnik1

Aní v logech nevidim snahu o spuštění.

Jendа avatar 9.7.2023 16:20 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Jednak protože 0 0 16 * * znamená
# m h  dom mon dow
0   0  16  *   *
a dneska není 16. den v měsíci a jednak tam kde máš otazník nedávám buď nic (v případě uživatelského crontabu, tj. to co edituješ crontab -e) nebo jméno uživatele (v případě systémového crontabu v /etc). (pak ještě hypoteticky skript může postrádat právo spouštění +x, a jinak by to mohlo být vidět v syslogu co se mu nelíbí)
Jendа avatar 9.7.2023 16:22 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
A taky 0 v sloupci h znamená že se to bude spouštět jen o půlnoci.

Tím by vlastně šel vyřešit ten tvůj druhý problém, do toho sloupce h se dá napsat 6-14 a ono to bude spouštět právě v ten rozsah hodin. (prve mě to nenapadlo, protože tohle moc nepoužívám)
9.7.2023 16:59 BigSandy
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Mužeš prosím napsat, jak to ma být spravně, aby se to spouštělo každou hodinu mezi tou 6-14.

Nebo třeba jen ve 14 hod.

https://www.freeformatter.com/cron-expression-generator-quartz.html

0 0 6 * * ? Every day at 6am

0 0 12 * * ? Every day at noon - 12pm
Jendа avatar 9.7.2023 21:26 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
# m h     dom mon dow
0   6-14  *   *   *     /home/pi/skripty/kurnik1
Ta odkazovaná stránka je nějaký jiný cron, standardní cron neumí sekundy (proto jsi tam měl o sloupec víc).
10.7.2023 06:41 BigSandy
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Děkují.
4.8.2023 12:38 BigSandy
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Klucí, prosím ještě o pomoc.

Mam bash skript a v něm

ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.149:554/user=admin_password=xxxx_channel=1_stream=0.sdp?real_stream -codec:v copy -an -t 01:00:00 /media/M2_disk_1TB/KAMERY/KURNIK/`date '+%Y-%m-%d-%H-%M-%S'`.mkv

Spouštím přes crona 0 6-14 * * * /home/pi/skripty/kurnik1

Je to ok,funguje to.

Problem je, když potřebují raspi restartovat, tak se skript spustí až se začatkem dalši hodiny.

Pomuže mi to někdo vyřešit?

Spoustit skript přes crona @reboot /home/pi/skripty/kurnikReboot

A aby to začalo nahravat a nahravalo do te doby, než se spustí další skript v celou hodinu.

Děkují moc.

4.8.2023 13:05 X
Rozbalit Rozbalit vše Re: Nahravaní videa přes ffmpeg
Vytvor si systemd timer a dej mu:
Persistent=true
OnCalendar=*-*-* 06..14:00:00
Zbytek si dohledej.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.