Transcoding Einzelbildrate optimieren

Status
Für weitere Antworten geschlossen.

CamFlyerCH

Benutzer
Mitglied seit
18. Apr 2019
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Mir ist aufgefallen, dass die gute und Hardware-unterstützte Video-Transkodierung (DS918+) jedes Video auf eine Einzelbildrate von 24 Bilder runterrechnet. Das ist gar kein Problem für z.B. einen Film welcher von einer Blueray gerippt wurde. Aber für TV-Aufnahmen (meist 720p mit 50 fps) oder Kamera- oder Handy-Aufnahmen mit 25, 30, 50 oder 60 fps ist das eine Katastrophe. Ich habe mal kurz mit SSH und top eine Kommandozeile kopiert:

/var/packages/VideoStation/target/bin/ffmpeg -ss 0.000 -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i /volume1/video/Ferien/Pedalo.mp4 -r 24 -vcodec h264_vaapi -vf format=nv12|vaapi,hwupload,setsar=sar=1,scale_vaapi=w=1280:h=720 -vsync 2 -bf 0 -vb 2000000 -acodec copy -f ssegment -segment_format mpegts ........

Der Parameter "-r 24" bewirkt das bei der Konvertierung so viele Bilder aus dem Original (hier 50 fps) gedroppt werden so das 24 fps entstehen. Klar dass dies sich bei Schwenks und alle ruhigen Bewegungen richtig schlecht auswirkt. Wenn dann z.B. die Android TV Box das ganze mit 60 fps zum TV schickt wird die Bildrate nochmals angepasst und es wird noch schlimmer. Ich denke das die Bildrate bei der Konvertierung nicht verändert werden sollte für Videos mit einer Bildrate <= 30 und darüber sollte die Bildrate genau halbiert werden. Oder als Tabelle:

24 fps = 24 fps
25 fps = 25 fps
30 fps = 30 fps
50 fps = 25 fps
60 fps = 30 fps

Ich denke ohne Anpassung am Code geht das nicht. Oder hat jemand von euch da noch eine gute Idee ? :confused:

PS: Ich weis dass ohne Transkodierung das alles ohne Probleme läuft. Wenn ich z.B. auf meinem Smartphone die Transkodierung abstelle oder wenn ich die Videos (im lokalen LAN) via KODI abspiele ist alles gut. Aber wenn ich nicht zuhause bin und die Bandbreite ohne Transkodierung nicht ausreicht wird es ruckelig. Oder wenn das Original in HEVC codiert ist und man will es im Browser abspielen ist die "Original" Qualität nicht verfügbar (so wie es bei H264 geht).
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
6.597
Punkte für Reaktionen
1.173
Punkte
254
Wenn die Qualität der Transcodierung auf "hoch" steht, bleiben die fps auf 50. Erst ab "mittel" wird auf 24/25 runter gerechnet. Macht ja auch Sinn, wenn die Bandbreite zu gering ist. Irgendwo muss ja Bandbreite eingespart werden. Wenn es mit der bitrate nicht ausreichend ist, werden die Frames beschnitten. Oder erwartest du bei einer bitrate von 1000kb/s oder weniger noch 50 frames?

Aber ich weiß was du meinst, nur ich denke das Anwendungsbeispiel ist nicht sehr oft gefragt, zumindest in meinem Fall. Die meisten werden dann doch eher 24/25/29.97 Quellmaterial verwenden.
Ist es nicht auch so, dass die 50fps nur bei progressiv Material vorliegen, also nur bei den öffentlichen in HD? Alle anderen senden doch interlaced. Bin mir da aber nicht ganz sicher. Bei den privaten kannst du doch eh nur in SD aufnehmen, also auch 25fps. Oder nicht?

Vielleicht wird hierfür auch eine DS der Gruppe 3 benötigt. Die kommt von Haus aus mit höheren fps klar, auch bei h265.
 

CamFlyerCH

Benutzer
Mitglied seit
18. Apr 2019
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Danke c0smo.
Da musste ich doch noch mal über die Bücher und Du hast recht was die Bildraten Anpassungen betrifft. Bei "Hoch" bleibt die Bildrate gleich, aber nur bei 1080p Material. Wenn das Video mehr Auflösung hat (2.7k von der GoPro) dann geht das auch nicht.

Zu den TV Aufnahmen: Ja, ich nehme hauptsächlich von den Öffentlich Rechtlichen Sendern auf, hier in der Schweiz SRF 1 und 2, aber auch von ORF sowie ARD, ZDF oder ARTE. Die Privaten haben mir zu viel Werbung und sind eben auch bei uns uncodiert nur in SD verfügbar. Es gibt aber auch noch private Sender in der Schweiz in 1080i50.

Die Transcodierung von HEVC / H265 zu was die Box halt will (immer in H264) funktioniert gut. Eigentlich sollte ich aber auch HEVC im Webplayer ohne recodierung anschauen können. Der Browser muss ja da das Video dann decodieren.
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
6.597
Punkte für Reaktionen
1.173
Punkte
254
Für h265 gehe ich den Umweg über die DS Video App für win10. Da die App das nicht nativ unterstützt, wird beim Start des Films gefragt, mit welchem Player abgespielt werden soll. Ich nehme dann den VLC und alles ist gut.
Für Chrome sollte es ein Plugin für hevc geben, Firefox kann damit noch nichts anfangen, so weit ich weiß.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat