Sziasztok!
Egy helyi TV-ben az internetes adást, a videójel fejállomásra küldését és a 24 órás NMHH adásrögzítést 3 különböző gép csinálja. Egy átalakítás során lehetőségem lesz 1 géppel kiváltani ezt a hármat. Ezzel a cég helyet és áramot is spórol. Egy gép esetében mindössze 1 db decklink kártya lesz abban a gépben és a fenti feladatokat kellene megoldanom úgy, hogy mind a három folyamat videót ugyanarról a kártyáról vegye le.
Ez egy db ffmpeg paranccsal megoldható e leírás szerint: https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs
Viszont ezzel az a problémám, hogy ha az internetes stream megszakad akkor megáll az NMHH rögzítés is. Tehát nekem egy olyan megoldás kellene amivel több egymástól független ffmpeggel tudom ezeket megoldani.
Jelenleg ha egy már futó ffmpeg mellett indítok egy újat akkor ez a hibaüzenet fogad, meg foglalt az eszköz:
[decklink @ 0x55d73f2a7f00] Cannot enable video input
DeckLink HD Extreme 3D+: Input/output error
Help pls!
- 767 megtekintés
Hozzászólások
Piped processes - az egyik outputot csövezd ki egy másik ffmpeg processnek ami a live streamet fogja csinálni, vagy socket vagy esetleg local stream amire csatlakozik a többi. Kb egy 5-8 éve kellett valami hasonlóval kísérletezni, ha jól emlékszem vlc-t is bevettük a buliba mert volt benne hasznos fícsör (pont a leszakadás miatt ha nem tévedek).
- A hozzászóláshoz be kell jelentkezni
Többféleképp is megoldható:
- több decklink kártya a gépbe
- ffmpeg fifo muxerét használva az rtmp kimenethez
- a stream szerverre (ha tudja) is mpegts-t streamelni
- A hozzászóláshoz be kell jelentkezni
Több decklink kártya nem fér be a gépbe.
Most az elképzelés az, hogy az első ffmpeggel leveszem a jelet a decklink kártyáról és a videó konvertálása nélkül egy másik konténerbe rakva ráküldöm egy Icecast2 vagy más hasonló szerverre. Ekkor még nincs minőségromlás, de máris további akármennyi ffmpeggel hozzá lehetne férni ehhez a streamhez, ami különböző formátumokban mehet tovább. Internetre hls, nmhh-nak meg wmv-be kell, fejállomásnak pedig megint másban kell majd.
-------------------
https://onlinestream.live/ - A legtöbb magyar rádió és TV egy helyen!
- A hozzászóláshoz be kell jelentkezni
szerintem nemkell icecast. ffmpeg is tud udp output-ot, azzal megoldhato: mindegyik cel (internet, nmhh, stb) listenel egy udp porton, egy ffmpeg meg szetosztja 3 outputba a kartya streamet
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Ezzel már félsiker van.
UDP outra már megy jól ezzel:
ffmpeg -hide_banner -re -f decklink -video_input $input -audio_input embedded -format_code $format_code -raw_format $raw_format -draw_bars false -i "$dev" -acodec copy -vcodec copy -f mpegts udp://127.0.0.1:23000
Az ffprobe viszont már nem ismeri fel a codeceket:
root@videostream:~/stream# ffprobe -hide_banner "udp://@:23000?overrun_nonfatal=1&fifo_size=50000000"
Input #0, mpegts, from 'udp://@:23000?overrun_nonfatal=1&fifo_size=50000000':
Duration: N/A, start: 27.119978, bitrate: N/A
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Data: bin_data ([6][0][0][0] / 0x0006)
Stream #0:1[0x101]: Data: bin_data ([6][0][0][0] / 0x0006)
Unsupported codec with id 100359 for input stream 0
Unsupported codec with id 100359 for input stream 1
root@videostream:~/stream#
UDP-re még nem szeretném tömöríteni sem a videót sem az audiót, mert minél jobb kiinduló minőség kell.
-------------------
https://onlinestream.live/ - A legtöbb magyar rádió és TV egy helyen!
- A hozzászóláshoz be kell jelentkezni
furcsa, en kiprobaltam helyi fajllal, es azt jol atvitte. ffprobe-nak nem kell megadni hogy az is decklink formatum (-f decklink)?
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Átvinni átviszi, de semmi sem játsza le.
Ha megadom a -f decklink paramétert akkor az ffmpeg rögtön a decklink kártyához akar hozzáférni.
-------------------
https://onlinestream.live/ - A legtöbb magyar rádió és TV egy helyen!
- A hozzászóláshoz be kell jelentkezni
Azer nem ismeri fel mert mpegts-be nem tehetsz akarmit mint video / audio,
RAW-codec-et meg vegkepp nem.
Mindenkeppen at kell convertalnod valami tamogatottba. Ha jot akarsz magadnak es van rendes GPU-d akkor, lossless h254 / h265 a te baratod.
- A hozzászóláshoz be kell jelentkezni
Egyelőre meg fogom próbálni valamilyen veszteségmentesre átkonvertálni és azt betenni mkv-ba. De az meg UDP-n nem fog kimenni, ezért lesz majd egy próba Icecast2-vel.
A Lényeg, hogy adott kimenet felé csak egyszer kelljen veszteségesen konvertálni.
-------------------
https://onlinestream.live/ - A legtöbb magyar rádió és TV egy helyen!
- A hozzászóláshoz be kell jelentkezni
mkv-t felejts el, az nem arra valo, hogy streameld, plane nem udp-n. Maradj csak az mpegts-nel, azzal menni fog.
- A hozzászóláshoz be kell jelentkezni
Ffserver?
------------------------
uint8_t *data; // tipussal megszorozzuk az adatot. wtf?
- A hozzászóláshoz be kell jelentkezni
[Feliratkozás]
- A hozzászóláshoz be kell jelentkezni