m1 - h265 hardware encoder?

Mit ffmpeg ist das nicht anders. Da kommt dann noch hinzu, dass du dich mit ffmpeg und seine x Parametern und Optionen genau auseinander setzen musst. Da gibt es keine presets. Du bist selbst für alles veranwortlich. Erg: es ist nicht enduser-tauglich. Ich kann dir eine funktionierende Kommandozeile liefern und stelle auch ein natives binary zur Verfügung _aber_ ich gebe darüber hinaus keinerlei Support oder Hilfestellung übers Forum, wenn du dich nicht hinreichend gut mit Terminal auskennst. Sonst wird das nämlich nur für beide Seiten sehr stressig und ärgerlich.
Ich bin ein Linux User der ersten Tage ;) Console ist mir also recht vertraut. In einer Zeit, als Grafikkarten von Linux eher nicht unterstützt wurden habe ich eine Zeit lang das WWW ebenfalls textbasiert genutzt ;)

Bis ich Deinen Post hier gelesen hatte war mir nicht klar, dass es diese Unterschiede zwischen VT und CPU basiertem Encoding gibt. Ich konnte in einem kurzen Test Deine Schilderungen aber nachvollziehen.
 
Ich bin ein Linux User der ersten Tage ;) Console ist mir also recht vertraut. In einer Zeit, als Grafikkarten von Linux eher nicht unterstützt wurden habe ich eine Zeit lang das WWW ebenfalls textbasiert genutzt ;)

Sehr gut. Das ist ja dann schon mal eine Basis. Wenn du mit "mach den download executable" was anfangen kannst, dann können wir es mit ffmpeg weiter angehen.

Dennoch nochmal: ffmpeg ist extrem mächtig, was aber auch schnell dazu führt, den Überblick über die Funktionen zu verlieren. Du musst dich einfach mit der Doku https://ffmpeg.org/ffmpeg.html, dem Wiki https://trac.ffmpeg.org/ und auch viel mit hochkarätigen Foren wie stackoverflow oder superuser.com auseinander setzen. Frag bei ffmpeg aber lieber nicht in User-Foren wie macuser.de nach, da ffmpeg nicht gerade ein end-user taugliches Stück Software ist.

BTW: Mein erster Kernel war 0.98. Ja 0.98, nicht 0.99. Zusammen mit einer auf yggdrasil (oder war's slackware?) basierenden Distro. Das alles auf 5,25" Floppies. Abenteuerlich.
 
  • Gefällt mir
Reaktionen: M001 und dg2rbf
Ich habe ein MBP 16" mit M2 Max und habe Handbrake 1.7.1 installiert. Auf der Projektseite gibt's das nur als Universal Binary, nicht als AS-native Download.

Mit installieren meinst Du Handbrake aus den Sourcen auf meinem Mac selbst compilieren?
Falls du dir HB wirklich selber kompilierst, wäre es supernett, wenn du uns mitteilen könntest, ob du eine Veränderung bei der Qualität feststellst.
 
  • Gefällt mir
Reaktionen: dg2rbf
BTW: Mein erster Kernel war 0.98. Ja 0.98, nicht 0.99. Zusammen mit einer auf yggdrasil (oder war's slackware?) basierenden Distro. Das alles auf 5,25" Floppies. Abenteuerlich.
Das ist natürlich OT :D.
Ich kenne die Kernel Version nicht mehr. Das erste System, mit dem ich "gespielt" habe, hatte noch keinen Bootloader und nur eine Shell...
Die erste richtige Distribution (Slackware) habe ich mit 14.4er Modem von nem Uni-Server geladen... Muss auch so um den 1.0er Kernel herum gewesen sein.
...Als man Mails noch per UUCP empfing, entpacken und lokal verteilen musste :D...
Lang ist's her
 
Machen wir dann per PN?

Nee, können wir hier tun, damit andere User, welche die erforderlichen Kenntnisse haben, acuh was dazu anfangen können:

Hier erst mal ein Link zu einem download, der auf meiner website liegt. Ich lasse den ein paar Tage gültig und lösche ihn dann wieder.

https://lisanet.de/dnl/ffmpeg.zip

Das entpackte binary hat einen md5 von

Code:
>md5 ffmpeg
MD5 (ffmpeg) = cb70be33fb5df36b6a2f1621551e0eb6

Bei downloads aus dem Netz musst du das Qaurantäne bit entfernen

Code:
xattr -d com.apple.quarantine ffmpeg

und anschließend sicherstellen, dass das binary executable ist. Dann noch in ein Verzeichnis in deinem Pfad legen, am besten nach /usr/local/bin. Sollte /usr/local/bin nicht exisiteren dann "sudo mkdir /usr/local/bin".

Im nächsten posting gibts die Kommandozeile. Das dauert etwas, das zu schreiben.
 
  • Gefällt mir
Reaktionen: spittix
Handbrake ist mittlerweile ein Universal Binary, läuft also nativ auf Apple Silicon, und bringt auch eigene Presets für Videotoolbox mit.
Die Release Notes sind immer recht ausführlich, dort sollte man alles über die Integration der Videotoolbox nachlesen können.

Handbrake Release Notes:
https://github.com/HandBrake/HandBrake/releases

Ansonsten gibt es dort noch das Mac-Unterforum, wenn immer noch Fragen dazu auftauchen:

https://forum.handbrake.fr/
 
  • Gefällt mir
Reaktionen: spittix
1701631685789.png
 
Welche Buildumgebung nutzt Du? Sollte ich XCode installieren? Developer-Tools sind drauf, aber wohl nicht alles was benötigt wird:
1701632453650.png
 
Beispiel:

Du hast einen mkv-Rip einer Bluray eines Filmes mit 1920x1080 und DD 5.1 Ton mit 640 kbps, der in widescreen aufgenommen ist und auf 1920x816 gecropped werden sollte.

Dann ist das die Kommandozeile:

Code:
ffmpeg  -hide_banner -i "schakal.mkv" -c:v hevc_videotoolbox -bf 1 -vtag hvc1 -prio_speed 1 -q:v 60  -vf crop=1920:816:0:132  -c:a ac3 -ac 6 -b:a 448k  -metadata:s:a language=ger -metadata title= -y 'Der Schakal (1997).mp4'

Die Parameter:

  • -hide_banner unterdrückt die ganzen Angaen wie ffmpeg erstellt wurde. Kannst du auch weg lassen, wen du willst.
  • -i "xxx" i=input für Dateiname "xxx"
  • -c:v hevc_videotoolbox: c=codec, v=video, "hevc_videotoolbox" ist der Codecname. Alle enthaltenen Codecs erhälst du mit ffmpeg -encoders. Die Optionen eines encoders erhälst du mit ffmpeg -help encoder=encodername also ffmpeg -help encoder=hevc_videotoolbox
  • -bf 1 schaltet b-frames ein. 1 ist nicht die Anzahl sondern ein Schalter
  • -vtag hvc1: setzt das FourCC auf hvc1. ATV erfordert das. ffmpeg verwendet standardmäßig hev1
  • -prio_speed 1: verwendet fürhevc_videotoolbox den "Prefer speed" mode. Aufgrund des nächsten Parameters hat das keine Einfluss auf die visuell wahrnehmbare Qualität
  • -q:v 60 setzt die "constant quality" auf 60. Entspricht in etwas x265 crf=20. Die Skala geht von 0 - 100, wobei 0 der schlechteste Wert und 100 der beste ist. 100 und alles knapp drunter ist sinnlos. Wenn du's nicht glaubst, setze es.
  • -vf crop=1920:816:0:132 croppt das Video auf 1920x816. Die Reihenfolge bedeutet: width:height:left:top
  • -c:a ac3 -ac 6 -b:a 448kwandel den Ton im in DD 5.1 448 kpbs. 448 kpbs erhöht dieKompatibilität mit manchen älteren ATV für direct paly und direct stream. Wenn du das nicht willst: -c:a copy und der Audiostream wird unverändert durchgereicht.
  • -metadata:s:a language=ger setzt das Kennzeichen für die Sprache des Audiostreams auf deutch. Englisch=eng. Macht sich einfach besser in Plex.
  • -metadata title= (einLeerzeichen nach dem = ist zwingend notwendig!) löscht das Tag für den Titel, den Makmkv aus dem Namen der BluRay erzeugt. Dieser Titel-Tag irritert Plex bei der Erkennung / Suche / Anzeige des Daten und Infos des Folems. Lösche dieses Tag immer. Ob Hndbrake das löscht, weiß ich nicht mehr genau. Soweit ich mich erinnere, tut es das aber nicht, sondern lässt es drin. Leider. Ich meine aber, mann kann das auch in Makemkv von vorneherein anders konfigurieren und weg lassen.
  • -y anwortet automatisert "yes" auf die frage, ob eine Ausgabedatei überschrieben werden soll, die bereits mit dem angebebenem NAmen exisiert
  • 'Der Schakal (1997).mp4' ist die korrekt Art der Benennung des Filmes "Der Schakal" von 1997. .mp4 ist notwenig, damit eben ein mp4-Container genommen wird. Erhöht die Kompatibilität mit älteren ATV.
Mit diesen Infos solltest du nun in der Lage sein, jeden BluRay/DVD-Rip ATV-kompatibel umwandlen zu können.

Noch zwei Zuckerlein:

Wenn du eine Dolby Prologic II Decoder hast (in einem AV-Verstärker) oder so wie ich einen der wenigen Dolby Digital 5.1 / Pro Logic II ähigen Kopfhörer hast, dann kannst du auch den DD 5.1 Ton des Rips umwandlen in ein Dolby Prologic II kompatibles 2 channel AAC. Vorteil: Auf allen Playern erhälst du immer alle Soundinformationen, selbst dann wenn der Player (sei es Software oder Hardware) oder ein Teil deiner Kette, irrtümlich nur den L un R channel eines 5.1 Tons als Stereosignal verwendet und keinen korrekten downmix durchführt.

Kleiner Nachteil: obwohl die Kanalseparierung mit Prologic II sehr gut ist, ist orginärer 5.1 Ton noch etwas präziseren in den surround channels.

Code:
-c:a aac -ac 2 -af aresample=matrix_encoding=dplii -b:a 256k

Die Parameter sollten mit dem obigen Wissen slebsterklärend sein

Zuckerchen 2 (das bessere der beiden)

Da der Standard für den downmix von 5.1 nach Prologic II nicht vorsieht, den LFE (low frequency effects), also den Subwoofer-Channel, mit einzubeziehen und einfach verwirft, fehlen bei einem standardkonformen downmix diese Audio-Signal.

Das kann man mit ffmpeg ändern und den LFE zusätzlich mit in den downmix einbeziehen. Dazu verwende anstelle der obigen Parameter für Audio folgende

Code:
-c:a aac -ac 2 -af aresample=matrix_encoding=dplii:lfe_mix_level=0.707 -b:a 256k

Das setzt den Mixlevel mit dem der LFE in L und R gemixt wird auf je 0.707 = ca -3 dB. Rein theoretisch könnte eine Übersteurung / Clipping erfolgen, ist mir aber noch nie untergekommen.

Vorteil 1:
Da ein Dolby Prologic II Decoder tiefe Töne aus L und R an den Subwoofer sendet, passiert das auch mit dem LFE.

Vorteil 2:
Auch auf reinen Stereosystemen ohne Prologic II Decoder werden die LFE ausgegeben und fallen nicht einfach unter den Tisch.

Wie gut das geht kannst du an diesem kleinen Dolby Testvideo sehen, dass ich als 2 channel AAC einmal mit und einmal nach Standard ohne LFE kodiert habe.

https://lisanet.de/dnl/ddplii_lfe.mp4.zip
https://lisanet.de/dnl/ddplii.mp4.zip

Das war's. Now it's up to you.

Edit: dB korrigiert.

Edit 2: was mit bei der Korrektur der dB gerade aufgefallen ist, dass ich mir die sourcen von ffmpeg nochmals durchsehen muss, da es sein könnte, dass für einen DD Prologic II downmix nicht stimmige mix level genommen werden. Die im Netz am meisten erwähnte mix level für die surround channel stimmen nicht mit den Angaben von Dolby überein.

Hier die Angaben von Dolby dazu: -> https://professionalsupport.dolby.c...d-Stereo-downmix-settings-work?language=en_US

Das sollte man aber auch via command line richtig setzen können. Ich werde das mal nachforschen.
 
Zuletzt bearbeitet:
Welche Buildumgebung nutzt Du? Sollte ich XCode installieren? Developer-Tools sind drauf, aber wohl nicht alles was benötigt wird:

Keine Ahnung was du kompilierst und woher du die sourcen hast. Es sieht für mich aus, als ob du die nackten sourcen aus einem git-repository nimmst, da autoconf angemeckert wird. Wenn du das machst musst du die GNU autotools (autoconf, libtool, m4) installiert haben und korrekt vorgehen. Das ist aber hartes Brot wenn es kein bootstrap oder ähnliches script gibt. Mit "./configure" alleine wird das nichts. Verwende daher eher eine source-code-tarball, wenn er angeboten wird.

Wenn du Handbrake kompilieren willst, richte dich nach der Doku von Handbrake. Da ist eigentlich ganz gut beschrieben, was du machen musst. Den Link müsst ich erst selbst wieder raus suchen. Das findest du aber sicher selbst.

Xcode allein reicht für autotool-sourcen oft nicht aus. Installiere noch zusätzlich die command-line-tools. Geht über Xcode oder im Terminal "xcode-select install"

Edit:

Bitte keine screenshots, sondern poste das in Code-Tags.
 
Das configure Script prüft Abhängigkeiten aus dem git, das geht mit einem lokalen Tarball natürlich nicht...
Hab den aktuellsten stabilen Snapshot per git gezogen, build ist damit durchgelaufen. Siehe Builddatum ;)
1701636580084.png
 
  • Gefällt mir
Reaktionen: lisanet
Das configure Script prüft Abhängigkeiten aus dem git, das geht mit einem lokalen Tarball natürlich nicht...
Hab den aktuellsten stabilen Snapshot per git gezogen, build ist damit durchgelaufen. Siehe Builddatum ;)
Anhang anzeigen 415621

... ffmpeg ist flexibler und bietet allein schon mit der obigen Kommandozeile mehr Möglichkeiten (metadata, dplii + lfe, Sprachkennzeichnung, prio_speed)
 
Auf der Projektseite gibt's das nur als Universal Binary, nicht als AS-native Download.
Dann mach die doch selber mit dem lipo Befehl, statt stundenlang neu zu kompilieren und Fehler zu behebn.
 
Dann mach die doch selber mit dem lipo Befehl, statt stundenlang neu zu kompilieren und Fehler zu behebn.
Danke für Deinen Hinweis. Jetzt, wo es einmal eingerichtet ist, dauert das kompilieren nicht sehr lange.
 
bisher nehme ich in handbrake immer h265 und constant quality RF 18, auf dem m1
- RF über 21: das videofile wird winzig (500MB) und die maximale schärfe ist weg
wenn das original 4GB hat, und die umwandlung ähnlich viel, wäre ich glücklich, es wird jedoch immer winzig.

finde in handbrake keine funktion, die bitrate des originals zu übernehmen oder überhaupt anzeigen zu lassen.
findet ihr das nicht wichtig?
man muss also unbedingt eine neue bitrate erraten ... zeitaufwändig, mit den vielen tests, wann es maximal scharf bleibt

hab andere apps getestet, und hatte probleme, dass der ton nicht mehr synchron war, in der mitte des films.
handbrake hat dafür ein separates kontrollfeld "audio/video sync". also bleibt nur handbrake
 
bisher nehme ich in handbrake immer h265 und constant quality RF 18, auf dem m1
- RF über 21: das videofile wird winzig (500MB) und die maximale schärfe ist weg
wenn das original 4GB hat, und die umwandlung ähnlich viel, wäre ich glücklich, es wird jedoch immer winzig.
Bei h265 ist die Einstellung der Qualität beim Regler umgekehrt zu h264.
Bei h264 musst du nach links gehen, um die Qualität zu steigern, bei h265 nach rechts.
 
  • Gefällt mir
Reaktionen: eMac_man
Zurück
Oben Unten