mpegts trukkozes....

Fórumok

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:

  • az mpv-nek ha két inputot adunk meg ("playlist"), akkor mai gépekkel szinte észrevehetetlen, ahogy az egyiknek vége és kezdődik a másik;
  • vhogy talán beállítható, hogy ezt a "playlistet" végtelen ciklusban játssza le;
  • miközben a playlist első elemét játssza, te írhatod a másikat; amikor a másodikat játssza, újraírhatod az elsőt;

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.

Van egy -follow opciója a libavformat file protokollnak, azt lehetne megpróbálni.

ffplay -skip_estimate_duration_from_pts 1 -follow 1 file.ts 
Szerkesztve: 2023. 12. 20., sze – 18:34

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

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.

Szerkesztve: 2023. 12. 21., cs – 15:24

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