egy konzolos video lejatszoval lejatszom az mpegts file-t, amit hdmi outputbol generalok ffmpeg-gel
(sajna file-lal kell dlgoznom, stream nem lehet)
A folyamat:
1. az intro file elore elkeszitve, 30 sec, mpegts
2. elinditom a lejatszot az intro file-on
3. az ffmpeg folyamat elindul es hozzair (stdout append) a file vegere (ugyanaz a stream type) az uj dekodolt hdmi anyagot
(itt NEM elfelejtendo, hogy a a file fizikai merete igy kozben folyamatosan valtozik!!!)
---------
...azt varnam, hogy az elso 30sec utan folytatodjon a lejatszas a file-on, ne alljon meg a player.
Sajna ez nem igazolodik be, hiszen az elso inditasnal a 30sec-et olvassa be, mint video duration, aztan kilep.
Itt a kerdes: hogy lehet azt megoldani, hogy tovabb menjen a lejatszas? Otlet?
(gondoltam ket verziot:
1. behazudni a player-nek, hogy nem 30sec a hossz az elso beolvasasnal, hanem 2 ora, de hogyan? At lehet alakitani az intro file-t, hogy 2 ora hosszunak hazudja magat? - pontosan nem ismerem a ts file szerkezetet, hogy az utolso kepkockabol szedi ki a lejatszo a durationt, vagy valahol egy metatag tarolja, vagy esetleg kalkulalt a kepkockak szamabol?)
2. a masodik streamet, ami hozzairodk, eleve valami offset-tel inditani)
KOSZ a segitseget
Hozzászólások
Tipp:
Persze ez sem tökéletes, mivel hosszabb távon elcsúszhatnak a dolgok, ha az írási sebesség nem pontosan egyezik az olvasásival.
Itt nem azzal van a baj hogy egy vagy két darab stream, hanem abban hogy a folyamatos hdmi streamnek változik a mérete. Olvasd át mégegyszer az előző hozzászólásomat.
Van egy -follow opciója a libavformat file protokollnak, azt lehetne megpróbálni.
Nem tudom, a player ezt a lib-et hasznalja e? Itt a kerdes barmilyen lejatszora ervenyes....
kerdes, hogy az ffmpeg-ben ket kulonfele tipusu input-ot (file es blockeszkoz (/dev/videoX)) lehet osszefuzni? ahol a blockeszkoz persze LIVE
ez is segitene
Elarulhatnad, hogy mi lenne a valodi cel. Nem, eddig sem azt irtad. xy?
A legelső hozzászólásomban van a valódi cél
Nem. Az, mar egy, a fejedben osszeallt folyamat egy lepese, miszerint egy folyamatosan irt filet akarsz lejatszani.
ez a valodi cel
Ezt szerintem, nem fogod tudni megoldani ugy, hogy ne nyulj bele a szoftverbe. Ha elarulnad a valodi celt, akkor lehet, hogy kiderulne, hogy nem is kell ragaszkodni a filehoz, lehet, hogy egy pipe is megfelelo megoldas lenne.
XY problémában vagy.
Mit akarsz megoldani igazából?
amit megprobalhatsz, az az, hogy named pipe-pa irsz es azt adod meg fajlnak a lejatszo progidnak. Mivel EOF csak akkor lesz, ha a pipe bezarodik, ezert a proginak folyamatosan olvasnia kell.
A https://sign-el-soft.hu oldalon található program azt csinálja amit kérsz.
Pont így működik pl. a felvétel közben lévő TV adás vagy egy letöltés alatt álló videó lejátszásakor is.
parancssorból pl.:
ng-xim -0 -s -w utvonal/video-neve.ts