Beiträge von monarc99

    Weil bei der letzten Ausgabedatei der map Befehl fehlt. Also nimmt ffmpeg für die Datei die Defaultwerte. Den ersten Video und den ersten Audiostream. Und da du keinen Audiocodec angegeben hast, nimmt er seinen default Codec vorbis.


    Andererseits brauchst du doch sowieso Audio ... eignet sich die Datei nicht schon, um auf Youtube hochgeladen zu werden?

    Oder ist es die Regel, dass du Audio nach bearbeiten musst?


    P.S. threads=18 nicht schlecht ^^

    P.S. Ruckeln die Videos nicht, wenn du mit 50fps die Spiele capturest und sie dann auf Youtube mit 60fps abgespielt werden?

    Da ist dann halt wieder das Problem das Audacity mit aac und flac ärger macht, ist halt nervig.

    Hast du das temp Verzeichnis von Audacity schon mal verlegt? auf die schnellste Platte mit genug Platz. (Einstellungen)

    Vielleicht kommt der Ärger daher, dass er nicht genug Platz hat, wenn er den Audio Stream dorthin extrahiert.


    Nun wäre die Frage, ob ffmpeg auch Code für beide Genauigkeiten enthalten kann, und ob man ffmpeg einen Parameter mitgeben kann, der zur Laufzeit auswählen kann, ob innerhalb von ffmpeg x264 mit 8 oder 10 bit Genauigkeit encodiert. Also vermutlich in "-x264opts".

    Wenn du per Filter das Pixel Format änderst, sollte ffmpeg automatisch die jeweilige Encoder Version laden.


    z.B. per -pix_fmt yuv420p10le (für 10bit) oder VapourSynth Script

    Die Frage ist nur, ob ffmpeg bei x264 sowohl -D8 als auch -D10 einbindet. Wenn -D10 fehlt, lohnt es sich nicht, ffmpeg zu benutzen, um mit x264 zu encodieren...

    Ich würde es zumindest probieren:


    10-bit x264 & x265


    FFmpeg recently added support to encode to 8-bit and 10-bit for x264 and x265 within the same executable.


    This feature has been enabled in the Zeranoe builds and can be triggered using the desired 10-bit pix_fmt:


    -pix_fmt yuv420p10le



    https://ffmpeg.zeranoe.com/for…ic.php?f=2&t=5475&p=13181

    Ach ok, die Audio Streams sind schon aac. Wie wäre es mit:


    -acodec copy -map 0:2 "%_name_% audio6.2.m4a"


    Habe jetzt die Kommandozeile nicht getestet, aber kopiere den AAC Stream einfach in einen separaten MP4 oder MKA Container. Sollte auch geschnitten sein. (-ss 00:10:00 -t 00:05:0 und sowas)


    Alternativ kannst du dich mit Audiofilter spielen z.B. :


    -acodec flac -map 0:3 -af loudnorm "%_name_% audio6.3.mka"


    der loadnorm Filter sollte Audio normalisieren und als flac in mka speichern. Wobei ich jetzt nicht weiss, welches Codecs Youtube annimmt. Würde zuerst flac oder opus probieren. FFMPEG Builds für Win mit Opus gibts hier -> http://ffmpeg.zeranoe.com/builds/



    Auch würde ich nicht in x264 pipen, sondern direkt mit ffmpeg eine fertige mkv (Video und Audio1) erzeugen. Dann sparst du den späteren mkvmerge Durchgang.

    Oder würde ich noch andere Möglichkeiten geben um das Problem mit der Dateigröße zu umgehen?

    Kannst du nochmal deinen kompletten Workflow umreißen?


    Also du nimmst mit obs auf. Ergebnis ist ne mkv mit Video und 3 Audio Spuren. (welche Codecs?)

    Und was genau willst du am Ende erreichen? (mir ist z.B. nicht klar, wieso du die 3 Audio Streams extrahierst und wieso du den Videostream neu kodierst - oder lädst du die crf15 x264 Datei bei Youtube hoch?)

    Eigentlich sollten die Dateien von der Festplatte abspielbar sein, von einem am TV angeschlossenen Player (nicht unbedingt von der VU, aber die ist aktuell vorhanden). Außerdem sollen sie aber ohne große Umkodierungen später auf Bluray brennbar sein.


    Die Frage ist, ob der x264-Stream korrekt erzeugt ist und ob darin die Seitenverhältnisse richtig angegeben sind. Die VU scheint sich nich um den Container zu kümmern, nur um die Angaben im Stream. Der VLC macht es umgekehrt.

    Der Stream ist vermutlich korrekt erzeugt, nur ob das jeder Player korrekt abspielt, steht auf einem anderen Blatt.

    Wie sieht es aus, wenn du deine hi8.avi mit 16/15 kodierst. Dann wärst du durch croppen zumindest die itu aspect ratios los.


    Je mehr du vom Player forderst, desto mehr kann schief gehen. Die meisten Player dürften auf die Fallback-Streams von Youtube / Apple getrimmt / getestet sein. (also mp4, h264 max level 4.1, aac Audio, Pixelverhältnis 1:1, kein Interlace)

    Die VU spielt sie ab, zeigt 768x576 an, die Anzeigebreite ist wenig geringer als bei mpeg-2. Das Bild ist leicht verzerrt.

    Zugegeben, ich habe nur etwas gecroppt und dann skaliert. War nur als Test gedacht, ob die VU damit auch irgendwas anstellt.

    Aber eine Frage, mit welcher Methode stellst du eigentlich fest, ob das Bild verzerrt ist?


    Ich möchte in erster Linie im Standard bleiben und in zweiter Linie erreichen, dass die Clips auch auf der VU (derzeitige Player) korrekt abgespielt werden.


    Somit habe ich also 2 Fragen:

    Sind die erzeugten mkv, mp4 Standard und werden sie von Standarplayern (Bluray) korrekt abgespielt?

    Gibt es Anpassungsmöglichkeiten bei x264, ffmpeg oder MKVToolnix, mp4ToolBox, so dass die VU sie auch abspielen müsste?

    Das Problem ist, dass du automatisch den Standard verlässt, wenn du ne mkv oder mp4 erstellst.

    Was ich damit meine, dass der Player die Datei dann komplett anders behandeln kann.


    Also z.B. der Player spielt ne DVD komplett richtig ab, du wandelst die DVD per makemkv in eine mkv.

    Und bei dieser mkv skaliert er die Auflösung auch einmal nicht mehr. Einfach weil der Player im Filemodus von USB sowas nicht unterstützt.


    Ist dein Ziel eine Bluray zu erstellen oder Dateien zu erstellen, die von möglichst vielen Playern problemlos abgespielt werden?

    Die sollten DAR 15:11 sein.


    Und die beiden sind jetzt die Dateien, die VLC korrekt abspielt, dein Player aber nach wenigen Sekunden umspringt?

    Danke für die Samples. Ich würde es auch nicht viel anders machen wie du.


    Also wenn ich keinen Knick in der Optik habe, braucht pur.avi ein SAR 12/11 und hi8.mpg ein SAR 16/15.



    Also pur.avi mit SAR 12/11 zu h.264 kodieren.


    Code
    1. ffmpeg -i pur.avi -map 0:v -pix_fmt yuv420p -vcodec libx264 -preset medium -tune film -x264opts crf=21:weightp=0:force-cfr=1:sar=12/11 -vf yadif,setsar="12/11" test.mkv


    Oder das von dir gecroppte/skalierte hi8.mpg dann mit 16/15 zu h.264.


    Code
    1. ffmpeg -i hi8.mpg -map 0:v -pix_fmt yuv420p -vcodec libx264 -preset medium -tune film -x264opts crf=21:weightp=0:force-cfr=1:sar=16/15 -vf yadif,setsar="16/15" test2.mkv

    Je nachdem, was du als Grundlage nehmen willst. Wobei du dann sehen musst, wie dein Player darauf reagiert.

    Youtube hat wohl mit einem kleinen Test von AV1 begonnen.


    Für folgende Videos gibt es wohl einige AV1 Streams:


    Playlist: https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS


    Spielen bei mir im mpv auch brav und flüssig ab. Auch die FullHD Varianten. (Arch Linux - älterer i5-3550 CPU @ 3.30GHz
    - mpv / libaom jeweils neuester git commit)


    Um es im Browser abzuspielen braucht man: Chrome 70 or Firefox Nightly builds newer than September 13

    Habe ich noch nicht probiert. Hab momentan nur Chrome 69 hier.

    Wundert mich, dass zwischen 1 und 3 ein Unterschied ist.


    Möchtest du dir die Mühe machen, ein paar Beispieldateien hochzuladen?


    Ich würde gerne 20sek vom Quellmaterial sehen. Und davon dann die 3 Dateien, die du oben beschreibst.

    (plus die komplette ffmpeg Kommandozeile, mit der sie erzeugt wurden - würde mich interessieren, an welcher Stelle du die sar setzt)

    Mit der Option --engage remove_bitstream_ar_info spielt die VU 720x576 ab.

    Was heißt das jetzt?

    Ne MKV hat im Header einmal eine aspect ratio info. Zum anderen kodierst du mit ffmpeg eine aspect ratio in den Video Stream ein.


    Dein Player findet zuerst die im Header und danach die andere aspect ratio im nächsten Keyframe (also paar Sekunden später) im Videostream. Und schaltet dann um. Wenn ich die Werte so sehe, könnte die im Header eine generischen ratio sein. Die im Video Stream könnte ne ITU/MPEG-4 sein. Die müsste dann aber eigentlich 12/11 oder 16/11 sein? (kann mich an die Werte nicht mehr erinnern, hab das nie verwendet)


    Wenn man den generischen PAR verwenden möchte, nimmt man bei ffmpeg bei


    4:3 -> sar 16:15

    16:9 -> sar 64:45


    Das muss halt einheitlich sein, weil sonst dein Player umschaltet.

    Zitat

    Bildseitenverhältnis : 1.364

    Das sollte bei 4:3 eher 1.333 sein.


    Bringt es etwas, wenn du die mkv Datei mit mkvtoolnix in eine neue mkv Datei muxt und dabei bei den Video Stream Optionen explizit nochmal das Seitenverhältnis auf 4:3 setzt?


    Auch bei den Einstellungen des Video Streams kannst du weitere Optionen von Hand eingeben.

    Setzt dort mal die folgende Option:


    Code
    1. --engage remove_bitstream_ar_info

    Mhm, warum ruckelt dann mpv, vlc, mpc hc ... usw. mit standardeinstellungen und potplayer nicht? Kapier das immer noch nicht.


    Ich probier das Ganze mal unter Ubuntu mit mplayer und ffmpeg decoder. Update folgt.

    Wie sehr unterscheidet sich denn die Auslastung, wenn potplayer es spielt? CPU/GPU


    Die Decodierung des Streams geht bei deinem Laptop entweder per CPU (Software -> ffmpeg/lavfilter), aber es gibt auch hybrid Decoder für Windows, die per OpenCL auf der GPU dekodieren/ bzw. die Dekodierung beschleunigen. Kann ja sein, dass potplayer einen hybrid Decoder onboard hat?

    Betrachte die Cores mal einzeln während er einen Film anzeigt. Ist z.B. ein Core bei 100% und der Rest nicht ausgelastet?


    Ich hatte mal diesen Fall. Und das Decodieren des 4k Materials lief problemlos über alle 4 Cores. (Video im Benchmark Modus dekodieren, ohne es anzuzeigen)

    Aber nach dem Decodieren wollte der Player das Material von 4k auf Full-HD runterskalieren. Und der Algo war nur Single Threaded und ein Core war nicht stark genug dafür.