ffmpeg biztonsági kamera

Fórumok

ffmpeg szeretnék rögzíteni egy ip kamera streamet.
Ez jelenleg ebben a formában működik is:

ffmpeg -i rtsp://admin:123456@192.168.1.5/live/mpeg4 -vcodec copy proba.mp4

Hogy lehetne azt megoldani, hogy mondjuk óránként egy fájl keletkezzen és ezt naponként egy mappába gyűjtse? Pl. 2015-01-06 mappába egy 7.mp4 lenne a 7-8 óráig felvétel.

Hozzászólások

Írni rá egy shell scriptet? :) Például elindítod háttérben az adott filenévvel, a pid-jét megjegyzed, vársz egy órát. Küldesz neki SIGINT-et, vagy SIGTERM-et, vagy SIGHUP-ot, valamelyikre gondolom, jó lesz. Próbáld ki! Generálod a következő filenevet date paranccsal, s így tovább. Nem tűnik nehéznek.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Szerintem még SIGTERM sem kell. Emlékeim szerint az ffmpegnek a -t paraméterrel kell megadni a rögzítés/átkódolás hosszát. Nálam most avconv van és ott a -timelimit másodpercben várja a időtartamot. Nem vagyok biztos benne, hogy az ffmpegnek is másodpercet kell megadni.

Kiegészítés a man alapján:
„-t duration
Restrict the transcoded/captured video sequence to the duration specified in seconds. "hh:mm:ss[.xxx]" syntax is also supported.”

-----

(&%;_98\<|{3W10Tut,P0/on&Jkj"Fg}|B/!~}|{z(8qv55sr1C/n--k**;gfe$$5a!BB]\.-

Mint már említettem, nincs ffmpeg a gépemen, így nem teszteltem, de valami ilyesmi lehet a megoldás:


#!/usr/bin/env bash

while true
do
  CDIR=$(date +'%F')
  mkdir -p "$CDIR"
  CFILE="$(date +'%H').mp4"
  ffmpeg -nostdin -t 3600 -i rtsp://admin:123456@192.168.1.5/live/mpeg4 -vcodec copy "$CDIR/$CFILE.mp4"
done

A dolog természetéből fakadóan egész órakor kell indítani, vagy a fájlnévbe kell az indítás pontos ideje:

CFILE="$(date +'%H%M%S').mp4"

.

-----

(&%;_98\<|{3W10Tut,P0/on&Jkj"Fg}|B/!~}|{z(8qv55sr1C/n--k**;gfe$$5a!BB]\.-

Olyat lehet, hogy egyszerre streamel is es fajlba is ment lokalisan?

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....