AVC, h264 und ffmpeg (gelöst)

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

AVC, h264 und ffmpeg (gelöst)

Beitrag von fischig » 21.07.2024 08:23:25

Soweit ich die wikipedia-Artikel verstanden habe, sind die Bezeichnungen AVC und h264 synonym. Stimmt das?
Zuletzt geändert von fischig am 22.07.2024 13:39:39, insgesamt 1-mal geändert.

Benutzeravatar
hikaru
Moderator
Beiträge: 13911
Registriert: 09.04.2008 12:48:59

Re: AVC und h264

Beitrag von hikaru » 22.07.2024 08:49:00

Ja. Der Englische Wikipedia-Artikel erklärt das auch. ;)

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: AVC und h264

Beitrag von fischig » 22.07.2024 09:14:07

Danke!

Zusatzfrage: x264 auch?

Dann echte Weiterfrage :wink: :
bei der Anlsyse meiner HD-Fernsehmitschnitte via VDR zeigt mediainfo: immer

Code: Alles auswählen

Format   AVC
Um den - soweit mir bekannt unnützen Ballast des Mitschnitts loszuwerden und zu einer akzeptableren Dateigröße zu kommen, konvertiere ich den dann mit:

Code: Alles auswählen

ffmpeg -i [mitschnitt].ts -vcodec h264 -crf 20 [video].mkv
Unter dem Eindruck meiner eigenen Vermutung, dachte ich, dass vielleicht mit

Code: Alles auswählen

ffmpeg -i [mitschnitt].ts - vcodec copy -crf 20 [video].mkv
schneller machen zu können. War aber nicht.
Die Bitraten blieben im Bereich des Mitschnittes (etwas kleiner, wegen überflüssiger Nullen?)

Benutzeravatar
hikaru
Moderator
Beiträge: 13911
Registriert: 09.04.2008 12:48:59

Re: AVC und h264

Beitrag von hikaru » 22.07.2024 09:36:41

fischig hat geschrieben: ↑ zum Beitrag ↑
22.07.2024 09:14:07
Zusatzfrage: x264 auch?
x264 ist ein h264-Encoder, eine Bibliothek bzw. ein Programm, um h264-Videos zu erzeugen.
fischig hat geschrieben: ↑ zum Beitrag ↑
22.07.2024 09:14:07
Um den - soweit mir bekannt unnützen Ballast des Mitschnitts loszuwerden und zu einer akzeptableren Dateigröße zu kommen, konvertiere ich den dann mit:

Code: Alles auswählen

ffmpeg -i [mitschnitt].ts -vcodec h264 -crf 20 [video].mkv
Unter dem Eindruck meiner eigenen Vermutung, dachte ich, dass vielleicht mit

Code: Alles auswählen

ffmpeg -i [mitschnitt].ts - vcodec copy -crf 20 [video].mkv
schneller machen zu können. War aber nicht.
Die Bitraten blieben im Bereich des Mitschnittes (etwas kleiner, wegen überflüssiger Nullen?)
Ich vermute(!), dass du durch die Angabe eines crf-Wertes trotz Angabe von "vcodec copy" eine Reencodierung erzwingst, was dann natürlich auch entsprechend Zeit kostet.

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: AVC und h264

Beitrag von fischig » 22.07.2024 09:44:51

Plausibel! Ok ich versuch's mal mit AVC/avc oder x264.

Ergebnis: Schlägt alles fehl. ffmpeg besteht auf h264. AVC/avc und x264 kennt er nicht.

MaGe
Beiträge: 1798
Registriert: 01.06.2014 17:12:16

Re: AVC und h264

Beitrag von MaGe » 22.07.2024 09:55:09

fischig hat geschrieben: [...] schneller machen zu können. War aber nicht.
Wie @hikaru schon schriebt, du kanst enteder eine -v:c copy (Kopieren)
oder -crf (neu kodieren) machen beides zusammen geht nicht



gruss MaGe.
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

Benutzeravatar
hikaru
Moderator
Beiträge: 13911
Registriert: 09.04.2008 12:48:59

Re: AVC und h264

Beitrag von hikaru » 22.07.2024 09:55:29

Nochmal:
h264/avc ist der Name des Codecs (des "Formats"), x264 der Name des Encoders (der Software).

ffmpeg benutzt über die Abhängigkeit von libavcodec und libx264 bereits x264 zum Encodieren von h264-Videos. Es gibt Debianx264 auch als eigenständiges Encodierprogramm, aber das brauchst du nicht.

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: AVC und h264

Beitrag von fischig » 22.07.2024 10:03:21

Ok, x264 war daneben.
Aber ich frag' mich halt, warum, wenn der codec doch derselbe ist (avc/h264), man keine Dateigrößenreduzierung via crf ohne Neucodierung erreichen kann.

Benutzeravatar
TRex
Moderator
Beiträge: 8325
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: AVC und h264

Beitrag von TRex » 22.07.2024 10:18:17

Stark vereinfachtes Beispiel: du hast nen Korb voller Äpfel und willst weniger haben, und dafür schlechtere Äpfel opfern. Dein Algorithmus dazu sei "x braune Stellen" als Schwellwert zum Wegwerfen (analog zum h264-Verfahren, wo ebenso "unnötige" Daten entfernt werden). crf entspricht gaaaaanz grob x (weder rechnerisch noch sonstwie, aber das ist der Parameter hier). Du kannst den Korb nicht einfach in einen anderen Korb umräumen und nen anderen Schwellwert haben, ohne dir alle Äpfel nochmal anzusehen, auch wenn die Methode zum Aussortieren die gleiche bleibt.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

MaGe
Beiträge: 1798
Registriert: 01.06.2014 17:12:16

Re: AVC und h264

Beitrag von MaGe » 22.07.2024 10:59:13

fischig hat geschrieben: [...] man keine Dateigrößenreduzierung via crf ohne Neucodierung erreichen kann.
Die Seite kennst du?

Konstanter Ratenfaktor (CRF)

Verwenden Sie diesen Ratenkontrollmodus, wenn Sie die beste Qualität beibehalten möchten und die Dateigröße keine Rolle spielt. Dies ist der empfohlene Ratenkontrollmodus für die meisten Anwendungen.

https://trac-ffmpeg-org.translate.goog/ ... _tr_pto=sc




gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: AVC und h264

Beitrag von fischig » 22.07.2024 11:45:31

TRex hat geschrieben:ohne dir alle Äpfel nochmal anzusehen
Das scheint mir der springende Punkt zu sein. Oder so herum: copy setzt beim -vcodec crf außer Kraft. ffmpeg will für crf einen codec haben, auch wenn es den bereits kennt/kennen sollte.

Hey!
Das hier funktioniert mit deutlicher Bitratenreduzierung:

Code: Alles auswählen

ffmpeg -i [mitschnitt].ts -crf 20 -acodec copy [mitschnitt].mkv
jetzt muss ich mal testen, welche Unterschiede ich sehe beim letztgenannten Kommando und

Code: Alles auswählen

ffmpeg -i [mitschnitt].ts -vcodec h264 -crf 20 -acodec copy [mitschnitt].mkv
@MaGe
Ja, kenne ich. Das „keine“ in der Beschreibung ist meiner Meinung nach ungenau. Zutreffender wäre meiner Meinung nach „nur eine untergeordnete“/„keine entscheidende“ oder etwas in der Art.
Ich wüsste nicht, warum ich crf verwenden sollte, wenn ich damit nicht auch eine Dateigrößen-/Durchschnittsbitraten-Änderung bewirken wollte.

MaGe
Beiträge: 1798
Registriert: 01.06.2014 17:12:16

Re: AVC und h264

Beitrag von MaGe » 22.07.2024 12:32:49

fischig hat geschrieben: Das hier funktioniert mit deutlicher Bitratenreduzierung:
## Bei mir mit einem 5 Min test beide gleich ##

Code: Alles auswählen

 ffmpeg -i Million_Dollar_Baby.m2t -t 300 -crf 20 -acodec copy -sn Million_Dollar_Baby-ohne-h264.mkv 
Million_Dollar_Baby-ohne-h264.mkv
147,8 MiB (155.012.783) - bitrate: 4133 kb/s

Code: Alles auswählen

 ffmpeg -i Million_Dollar_Baby.m2t -t 300 -vcodec h264 -crf 20 -acodec copy -sn Million_Dollar_Baby-mit-h264.mkv 
Million_Dollar_Baby-mit-h264.mkv
147,8 MiB (155.012.783) - bitrate: 4133 kb/s



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: AVC, h264 und ffmpeg (gelöst)

Beitrag von fischig » 22.07.2024 15:35:36

@MaGe
Weißt du du vielleicht, ob Million-Dollar-Baby bei arte.de mit französischen Untertiteln kommt? Dann würde ich morgen mal wieder kaffeine bemühen. :wink:

MaGe
Beiträge: 1798
Registriert: 01.06.2014 17:12:16

Re: AVC, h264 und ffmpeg (gelöst)

Beitrag von MaGe » 22.07.2024 17:11:06

fischig hat geschrieben: Weißt du du vielleicht, ob Million-Dollar-Baby bei arte.de mit französischen Untertiteln kommt?

Code: Alles auswählen

ccextractor Million_Dollar_Baby.m2t 
Notice: Teletext page with possible subtitles detected: 888
- No teletext page specified, first received suitable page is 888, not guaranteed
Notice: Teletext page with possible subtitles detected: 151
Notice: Teletext page with possible subtitles detected: 150
Notice: Teletext page with possible subtitles detected: 152

## Ja ##

Code: Alles auswählen

 ffmpeg -fix_sub_duration -txt_format text -txt_page 888 -i Million_Dollar_Baby.m2t -ss 00:05:21.856 -to 02:10:38.256 Million_Dollar_Baby.srt 

1
00:06:18,920 --> 00:06:19,160
...

2
00:06:51,680 --> 00:06:54,640
-Quand je l'ai rencontré,

3
00:06:54,640 --> 00:06:54,920
il était déjà considéré
comme le meilleur soigneur.

4
00:07:47,920 --> 00:08:41,440
profondeurs de chair. Et Frankie
avait toujours une solution.



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

kreuzschnabel
Beiträge: 498
Registriert: 24.09.2020 14:51:14

Re: AVC und h264

Beitrag von kreuzschnabel » 22.07.2024 17:44:33

fischig hat geschrieben: ↑ zum Beitrag ↑
22.07.2024 11:45:31
TRex hat geschrieben:ohne dir alle Äpfel nochmal anzusehen
Das scheint mir der springende Punkt zu sein. Oder so herum: copy setzt beim -vcodec crf außer Kraft.
So wie ein „Schreib den Roman einfach Wort für Wort ab“ ein „Zielsprache ist Englisch“ außer Kraft setzt, ja.
-vcodec copy heißt: pack das kodierte Videomaterial so, wie es ist, in die neue Datei um. Ohne neu zu kodieren. Also ohne einen Codec überhaupt zu benutzen. Natürlich brauchst du dann weder einen Codec noch einen CRF anzugeben, weil der CRF eben ein Parameter zum Kodieren ist, das du aber gar nicht durchführst.
ffmpeg will für crf einen codec haben, auch wenn es den bereits kennt/kennen sollte.
Um einen CRF anzuwenden, musst du neu kodieren. Um neu zu kodieren, brauchst du einen Codec. Wenn du keinen Codec angibst, nimmt ffmpeg seinen Default, und das dürfte h264 sein.

--ks
Hier so: Debian Stable/Sid (nach Laune) – KDE Plasma – Lenovo Thinkpad T470p – i7-7700HQ – 32GB RAM

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: AVC, h264 und ffmpeg (gelöst)

Beitrag von fischig » 22.07.2024 19:11:53

@Ma Ge
Bingo! :THX:

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: AVC, h264 und ffmpeg (gelöst)

Beitrag von fischig » 23.07.2024 09:17:18

Unter dem Vorbehalt, dass ich in dem Video-Codec-Bezeichner-Dschungel nicht wirklich durchblicke, habe ich das hier nochmal überprüft:
kreuzschnabel hat geschrieben:Wenn du keinen Codec angibst, nimmt ffmpeg seinen Default, und das dürfte h264 sein.
Es sieht eher so aus, wie zuletzt von mir vermutet: wird kein codec angegeben, nimmt ffmpeg den vorhandenen. Ich habe das mal getestet mit einer alten Aufzeichnung, bei der garantiert kein h264 im Ausgagnsvideo steckt:

Code: Alles auswählen

Input #0, avi, from 'Men_at_Work_09.07.25_das4_125.avi':
  Stream #0:0: Video: mpeg4 (Simple Profile)

Input #0, avi, from 'men-at-work.avi':
  Stream #0:0: Video: mpeg4 (Simple Profile)
Bleibt offen, was passiert, wenn ffmpeg den codec nicht kennt. Ein solches Video dürfte schwer zu finden sein. Oder man müsste sich den code anschauen, um's zu verfizieren.

MaGe
Beiträge: 1798
Registriert: 01.06.2014 17:12:16

Re: AVC, h264 und ffmpeg (gelöst)

Beitrag von MaGe » 23.07.2024 10:57:37

fischig hat geschrieben: [...] wird kein codec angegeben, nimmt ffmpeg den vorhandenen [...]
ffmpeg stellt anhand der angegebenen Dateieindungen automatisch fest,
was in welches Format wie konvertiert werden muß

## VOB-Datei
Stream #0:1[0x1e0]: Video: mpeg2video
Stream #0:2[0x80]: Audio: ac3,

Code: Alles auswählen

 ffmpeg -i VTS_01_8.VOB VTS_01_8.avi 
## Avi-Datei ffmpeg ändert auch gleich den Audio Codec von ac3 in mp3
Stream #0:0: Video: mpeg4
Stream #0:1: Audio: mp3



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

kreuzschnabel
Beiträge: 498
Registriert: 24.09.2020 14:51:14

Re: AVC, h264 und ffmpeg (gelöst)

Beitrag von kreuzschnabel » 23.07.2024 13:16:56

MaGe hat geschrieben: ↑ zum Beitrag ↑
23.07.2024 10:57:37
ffmpeg stellt anhand der angegebenen Dateieindungen automatisch fest,
was in welches Format wie konvertiert werden muß
Die Endung legt lediglich das Containerformat fest. An Codecs kann da Unterschiedliches drin sein. Ob und wie konvertiert wird, ist mehr oder weniger deine Entscheidung als Anwender, das wird vom Container nicht vorgegeben (gut, der Rahmen wird vorgegeben, nicht jeder Container kann jeden Codec enthalten).

--ks
Hier so: Debian Stable/Sid (nach Laune) – KDE Plasma – Lenovo Thinkpad T470p – i7-7700HQ – 32GB RAM

MaGe
Beiträge: 1798
Registriert: 01.06.2014 17:12:16

Re: AVC, h264 und ffmpeg (gelöst)

Beitrag von MaGe » 23.07.2024 17:56:12

kreuzschnabel hat geschrieben: Die Endung legt lediglich das Containerformat fest.[...]
Ob du mir das glaubst oder nicht, diese Tatsache ist mir hinlänglich bekannt.

Und auch das steht im Internet.

ffmpeg -i [input_file_name] [output_file_name]

Das Argument -i gibt die Eingabedatei an. Auf den Namen der Eingabedatei
folgt der Name der Ausgabedatei. Dieser kann eine beliebige Dateierweiterung
haben (z. B. .mkv, .mp4, .mp3). FFmpeg erkennt das Eingabeformat automatisch
und konvertiert es in das durch die Dateierweiterung angegebene Ausgabeformat.
fischig hat geschrieben: Es sieht eher so aus, wie zuletzt von mir vermutet: wird kein codec angegeben, nimmt ffmpeg den vorhandenen [...]
Richtig.

## Wenn ich a.avi in b.avi konvertiere bekomme ich mpeg4

## Und wenn ich VTS_01_8.mp4 mit Video: h264
in VTS_01_8.avi konvertiere bekomme ich mpeg4
Stream #0:0: Video: mpeg4
Stream #0:1: Audio: mp3



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

Antworten