Sziasztok,
ffplay segítségével játszanék le mobotix kameráról mxg steam-et. Szépen megy, alacsony késleltetéssel (persze ehhez szükséges opciók megadásával). De... Ha nagyon megváltozik a kép, pl eléteszem a kezem akkor beszaggat, majd úgy is marad, egyre nő a késleltetése, a frameate pedig 0.2 0.1-re is lecsökkenhet.
Amikor ez történik, akkor az ffplay státust sorában, ami normálisan így néz ki:
1342004912.60 A-V: 0.000 s:0.0 aq= 0KB vq= 47KB sq= 0B f=0/0
Na szóval az s:0.0 lesz egyre nagyobb. Sehol nem találtam meg ez mit jelenthet, a forásban nézelődve ez valami eldobott frame-ekből számolt érték.
1. megoldás: ha valaki tudja hogy ez mi és hogy lehet elkerülni, ez lenne a legszebb. -framedrop nem segít.
2. Csúnya hekk, de igazából megfelelne csak elakadok. Hátha ti gyorsabbak vagytok :-)
Szóval a szkript lényege az lenne, hogy ha ez az érték nagyobb mint 0.2, akkor indítsa újra a lejátszást. Odáig sem jutok el, hogy feldolgozzam a kiírt sort. Ez egy baromi gyorsan frissített sor, ami a sor végén 3 whitespace (nem tudom pontosan milyen) és egy ^M karaktert tartalmaz. Fájlba irányítva egyetlen baromi hosszú sor lesz, vi-ban megnyitva szépen látszik, nincs EOL. cat-tal kiíratva szépen visszatörölget, csak az utolsó blokkot íratja ki.
Amin szenvedek: line editorok (sed, awk stb) nem adnak ki semmit, mert amíg tart a stream, addig nincs sorvége, nyelik a pufferbe.
tr szépen elnyeli a ^M-et ha kérem, ő szépen eszi és továbbítja a szövegstream-et, de nekem az kéne, hogy valami a "...^M"-et cserélje sor végére, hogy ki tudjam szedni a nekem szükséges értéket. Más megoldásnak is örülök :-)
Kösz,
BaZso
- 1142 megtekintés
Hozzászólások
A kimeneten nem new line (0x0A) zárja a sort, hanem carriage return (0x0D). Ezért írja felül az új sor a régit.
Tipp: például az awk-nak meg lehet adni a rekordot záró karaktert. Az RS értéke legyen a CR. (awk -v RS="\r" ...)
Második tipp: sed 's/\r/\n/g' carriagereturn.txt > newline.txt
-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.
- A hozzászóláshoz be kell jelentkezni
Nagy király vagy, köszönöm, az első tipped bejött :-)
A második fájlra műk, kis különbséggel én is ezt csináltam ,de ott ugye van EOF. Viszont ez STDIN-ről nincs amíg tart a stream.
- A hozzászóláshoz be kell jelentkezni