Forum: PC Hard- und Software ffmpeg tv stream hardware encodieren


von frage (Gast)


Lesenswert?

Hallo,
wüsste ihr, wie man einen tv Stream per hardware mit ffmpeg enkodieren 
kann?
Ziel ist es, den tv Stream umzuwandeln und dann per Netzwerkstream zur 
Verfügung zu stellen.
Normalerweise müsste dies mit meinem Mainboard möglich sein, Video 
Dateien per Hardware zu enkodieren.
Also nicht über den CPU, sondern über den Grafikchip.

Mein Mainboard mit onboard CPU: asrock d1800m
Also Intel Atom Dual Core mit Grafikchip Intel® 7th generation (Gen 7) 
graphics

Wie würde der ffmpeg Befehl hierfür aussehen?

von M.M.M (Gast)


Lesenswert?

frage schrieb:
> Hallo,
> wüsste ihr, wie man einen tv Stream per hardware mit ffmpeg enkodieren
> kann?

Warum sollte man das tun? Das Material eines TV-Streams ist doch schon 
encodiert.

> Wie würde der ffmpeg Befehl hierfür aussehen?

Steht alles haarklein im Wiki von ffmpeg:
trac.ffmpeg.org/wiki/HWAccelIntro

MfG

von Oliver S. (z0ttel)


Lesenswert?

Du hattest nicht geschrieben, woher der TV Stream kommt - TVHeadend 
kennst Du schon?

von frage (Gast)


Lesenswert?

Hi ja klar kenne ich tvheadend, ist mit aus das beste 
Ansteuerungsprogramm das ich kenne.
Das beinhaltet echt alles was man benötigt.

Die Konfiguration ist auch recht einfach.
Unter stream kann man ja das jeweilige Encodierformat auswählen 
h264_vaapi = x264 ,hevc_vaapi = x265,mpeg2_vaapi =mpeg2 u. vp8_vaapi = 
vp8.

Diese Encodierformate müssten normalerweise von meinen Intel Chip 
unterstützt werden.

Ziel ist es, dass die Auflösung beibehalten wird, jedoch die 
Datenbitrate immer unter 1,8 MB/sec liegt.
Bei full hd streams 1920x1080 mpeg4 ist die Datenbitrate natürlich viel 
höher als bei Standart TV 720x576 mpeg2.
Ja ich möchte meinem Vater ermöglichen auch über meinen Server zu Hause 
fern zu sehen.

Hm gute Frage, welches Encodierformat mit welcher Einstellung das 
ermöglicht.
Man kann ja bei tvheadend nicht nur das Video, sondern auch das 
Audioformat festlegen.

Werde wohl nicht drum herum kommen es aus zu probieren.

von frage (Gast)


Lesenswert?

Leider klappt bei mir das encodieren mit tvheadend nicht.
Im Stream sind dann nur noch die Audiodateien vorhanden.hm

Ich hab keinen xserver laufen, da die Tv Karten in meinem Server sind.

vainfo gibt mir folgendes aus:
root@aSrOcKserver:/speicher/disk2# vainfo
error: can't connect to X server!
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: Trying to open 
/usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.4 (libva 2.4.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Bay Trail - 2.3.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :  VAEntrypointVLD
      VAProfileMPEG2Simple            :  VAEntrypointEncSlice
      VAProfileMPEG2Main              :  VAEntrypointVLD
      VAProfileMPEG2Main              :  VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:  VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:  VAEntrypointEncSlice
      VAProfileH264Main               :  VAEntrypointVLD
      VAProfileH264Main               :  VAEntrypointEncSlice
      VAProfileH264High               :  VAEntrypointVLD
      VAProfileH264High               :  VAEntrypointEncSlice
      VAProfileH264StereoHigh         :  VAEntrypointVLD
      VAProfileVC1Simple              :  VAEntrypointVLD
      VAProfileVC1Main                :  VAEntrypointVLD
      VAProfileVC1Advanced            :  VAEntrypointVLD
      VAProfileNone                   :  VAEntrypointVideoProc
      VAProfileJPEGBaseline           :  VAEntrypointVLD

Wenn ich das richtig sehe, dann fehlt der 256 Teil, mpeg2, h264 u. vc1 
ist vorhanden.

von Oliver S. (z0ttel)


Lesenswert?

Ich habe TVHeadend bei mir zu Hause auch auf einer Headless-Kiste 
laufen, um von DVB-S2 ins Netzwerk zu streamen. Das Programm hatte ich 
mir damals aus den Sourcen selbst kompiliert, da ich keine aktuellen 
Pakete finden konnte und die Build-Optionen gerne selbst kontrollieren 
wollte.

Hattest Du Deine Version auch selbst kompiliert?

von frage (Gast)


Lesenswert?

Hi Oliver, nein ich hatte tvheadend direkt als fertiges Paket unter 
debian installiert.
apt-get install tvheadend

von Dergute W. (derguteweka)


Lesenswert?

Moin,

frage schrieb:
> Ziel ist es, dass die Auflösung beibehalten wird, jedoch die
> Datenbitrate immer unter 1,8 MB/sec liegt.
Das haut nicht hin. Es ist guenstiger, wenn nachher eh' nur mit 
popeligsten Datenraten gearbeitet werden muss, die Aufloesung stark zu 
reduzieren. Dann siehts danach weniger schlimm aus...

Gruss
WK

von Reinhard S. (rezz)


Lesenswert?

Dergute W. schrieb:
> Moin,
>
> frage schrieb:
>> Ziel ist es, dass die Auflösung beibehalten wird, jedoch die
>> Datenbitrate immer unter 1,8 MB/sec liegt.
> Das haut nicht hin. Es ist guenstiger, wenn nachher eh' nur mit
> popeligsten Datenraten gearbeitet werden muss,

14 MBit/s find ich jetzt nicht popelig.

> die Aufloesung stark zu
> reduzieren. Dann siehts danach weniger schlimm aus...

Naja, VGA vielleicht nicht gleich, aber es wäre prinzipiell zu beachten. 
Alternativ gleich die SD-Streams verwenden ;)

von Dergute W. (derguteweka)


Lesenswert?

Reinhard S. schrieb:
> 14 MBit/s find ich jetzt nicht popelig.

Hm - ja, da ist was dran. Aber wenn das gemeint ist, braucht man doch 
eigentlich garnicht zu transcodieren. Ok, hab' grad aktuell nicht in 
Transportstroeme geschaut, aber iirc waren da bei HD-Kanaelen eher so 
11..13MBit/sec angesagt; bei SD eh deutlich weniger. Da muesste man ja 
noch stuffen, um auf 14 zu kommen.

Gruss
WK

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.