Zaznam RTSP streamu z kamery do 30min dlouhych souboru

Martin Vancl tux.martin na gmail.com
Pondělí Květen 12 00:42:43 CEST 2014


Dne 11. května 2014 15:30 Pavel Kankovsky
<peak na argo.troja.mff.cuni.cz> napsal(a):
> Problém je zjevně způsoben tím, že je nešťastný z toho, že neví, co má
> udělat se zvukovou stopou na vstupu. Vypadá to, že "-map 0" má u avconv-u
> trochu jiný význam než u ffmpeg-u a že v tomto případě by mělo být spíš něco
> jako "-map 0.0", chcete-li zvuk ze záznamu vynechat.

Dekuji za radu, uz to skoro funguje. Stacilo uvest map 0:0.

$ avconv -i rtsp://:@192.168.123.10:8554/live0.264 -vcodec copy -map
0:0 -f segment -segment_time 10 -segment_format mp4 "out%03d.mp4"
avconv version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c)
2000-2013 the Libav developers
  built on Feb  6 2014 20:56:59 with gcc 4.6.3
[rtsp @ 0xc969c0] Estimating duration from bitrate, this may be inaccurate
Input #0, rtsp, from 'rtsp://:@192.168.123.10:8554/live0.264':
  Metadata:
    title           : Session streamed by "rtspServerForJovision"
    comment         : live0.264
  Duration: N/A, start: 47721.859625, bitrate: N/A
    Stream #0.0: Video: h264 (Baseline), yuv420p, 1280x720, 25 tbr,
90k tbn, 180k tbc
    Stream #0.1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
Output #0, segment, to 'out%03d.mp4':
  Metadata:
    title           : Session streamed by "rtspServerForJovision"
    comment         : live0.264
    encoder         : Lavf53.21.1
    Stream #0.0: Video: libx264, yuv420p, 1280x720, q=2-31, 90k tbn, 90k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press ctrl-c to stop encoding
Application provided invalid, non monotonically increasing dts to
muxer in stream 0: 2203121 >= 2183889
av_interleaved_write_frame(): Invalid argument

Po par souborech to spadne, ale jde o nahlasenou chybu. Mam starou
verzi z ubuntu 12.04. Zitra zkusim novou a tim se doufam problem
vyresi.

Pro datum v nazvu souboru staci:
$ffmpeg -i rtsp://:@192.168.123.10:8554/live0.264 -vcodec copy -map
0:0 -f segment -segment_time 10 -segment_format mp4 "kamera_1_-_`date
+"%Y-%m-%d_%H-%M-%S"`_%03d.mp4"

a vysledek vypada "kamera_1_-_2014-05-12_00-29-02_001.mp4". Jenom je
skoda, ze tam musi byt parametr na inkementaci. Ffmpeg nepozna, ze
zmeny dela vlozeny prikaz a proto spadne:

$ ffmpeg -i ... "kamera_1_-_`date +"%Y-%m-%d_%H-%M-%S"`.mp4"
Could not write header for output file #0 (incorrect codec parameters ?)

i tak jsem nyni maximalne spokojeny.


> Ne že bych programu openRTSP rozuměl, ale v tom seznamu platných parametrů,
> který vypíše, -P chybí. Nemůže to být třeba tak, že máte nějakou starší
> verzi, která to ještě neumí? Ostatně to píše:
> "User-Agent: openRTSP (LIVE555 Streaming Media v2011.12.23)",
> čili to máme dva a půl roku vývoje, kdy tam mezitím mohli to -P přidat
> (a možná vyřešit i jiné pozorované chyby -- a možná pro změnu zase
> zavléct nové).

To same jako ffmpeg, mam verzi z ubuntu 12.04, zitra zkusim novou.


> A ty zaznamenávané soubory tam narvete? ;)

Planuju je ukladat na sitovy disk, nebo (pokud bude router s usb) na
pripojeny flash disk.




-- 
S pozdravem
Bc. Martin Vancl

e-mail:  tux.martin na gmail.com
www:    http://martin.vancl.eu/


Další informace o konferenci Linux