To h264
Jsffm (Diskussion | Beiträge) K |
Jsffm (Diskussion | Beiträge) (→Schalter in to_h264.conf) |
||
(54 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | == VDR Aufnahme mit ffmpeg oder libav in h264 umwandeln | + | ==Beschreibung== |
+ | |||
+ | VDR Aufnahme mit ffmpeg oder libav (avconv) in {{wikipedia|h264}} oder {{wikipedia|HEVC}} umwandeln. | ||
+ | |||
+ | Der Script ist dafür gedacht, einzelne Aufnahmen so nach h264 zu wandeln, dass sie kompatibel zum vdr bleiben. | ||
Platzersparnis: bei Aufzeichnungen von ÖRs mit großen Bitraten Faktor 3 und mehr. | Platzersparnis: bei Aufzeichnungen von ÖRs mit großen Bitraten Faktor 3 und mehr. | ||
+ | |||
+ | Aufgerufen wird der Script auf der cli im Aufnahmeverzeichnis der jeweiligen Aufnahme, genauer gesagt im .rec Verzeichnis. | ||
+ | |||
+ | Sollen eine größere Menge von Aufnahmen gewandelt werden siehe [[#Automation|Automation]]. | ||
Funktioniert mit .vdr und .ts | Funktioniert mit .vdr und .ts | ||
− | Ziel wird in .rec | + | Ziel wird in .rec Version + 1 gespeichert. |
+ | Alternativ ist auch Ausgabe in mkv oder mp4 möglich. | ||
Video wird nach h264 konvertiert | Video wird nach h264 konvertiert | ||
− | Audio mp2 wird nach aac konvertiert | + | Audio mp2 wird nach aac konvertiert (abschaltbar) |
Profil 1 | Profil 1 | ||
Zeile 29: | Zeile 38: | ||
Alle Tonspuren bleiben erhalten | Alle Tonspuren bleiben erhalten | ||
− | Untertitel werden | + | Untertitel werden kopiert |
− | info.vdr wird ergänzt mit "L 99" | + | Die Datei [[info.vdr]] wird ergänzt mit "L 99" |
− | Softhddevice spielt das Ergebnis klaglos ab. | + | [[Softhddevice-plugin]] spielt das Ergebnis klaglos ab. |
− | + | ===Menü=== | |
<pre> | <pre> | ||
Zeile 69: | Zeile 78: | ||
t tsmuxer</pre> | t tsmuxer</pre> | ||
− | + | ===Einstellungen === | |
+ | |||
+ | ====Schalter in to_h264.conf==== | ||
<pre> | <pre> | ||
Zeile 76: | Zeile 87: | ||
stop=yes # Bestätigung bei wichtigen Meldungen + Menüs | stop=yes # Bestätigung bei wichtigen Meldungen + Menüs | ||
#mkv=yes # Matroska Format erzeugen | #mkv=yes # Matroska Format erzeugen | ||
+ | #outf=mkv # Matroska Format erzeugen | ||
+ | #outf=mp4 # mp4 | ||
#audio_auswahl=yes # Reihenfolge und Auswahl der Audiospuren | #audio_auswahl=yes # Reihenfolge und Auswahl der Audiospuren | ||
− | join=ffmpeg | + | #join=ffmpeg # concat ffmpeg >= 1.1, wird bei < 1.1 autom. abgeschaltet |
− | join=cat | + | #join=cat # concat für ffmpeg < 1.1 mittels cat, |
# bei ffmpeg >= 1.1 wird autom. builtin benutzt | # bei ffmpeg >= 1.1 wird autom. builtin benutzt | ||
# funktioniert bei neueren TS-Files | # funktioniert bei neueren TS-Files | ||
Zeile 94: | Zeile 107: | ||
#mux=mkvmerge # testing only | #mux=mkvmerge # testing only | ||
mux=ffmpeg # works fine | mux=ffmpeg # works fine | ||
+ | |||
+ | #vcodec=hevc # transcode nach hevc (Standard h264) | ||
+ | |||
+ | mp2=aac | ||
+ | #mp2=copy | ||
+ | #ac3_stereo=ac3 # ac3 stereo in ac3 192k Lautstärke wird angehoben, daher besser aac | ||
+ | ac3_stereo=aac # ac3 stereo in aac 128k | ||
#scale="-vf scale=720:576:interl=1" # HD --> SD | #scale="-vf scale=720:576:interl=1" # HD --> SD | ||
+ | #scale="-vf crop=iw/4*3:ih,scale=720:576 -aspect 4:3" # HD -> SD 4:3 | ||
+ | #scale="-vf crop=iw:ih-120 -aspect 16:9" # LB | ||
+ | #aspect="-aspect 4:3" | ||
crf=21 # Qualität, default 23, kleiner ist besser | crf=21 # Qualität, default 23, kleiner ist besser | ||
− | gop="-g 50" # verbessert die Navigation, default 250 | + | gop="-g 50" # verbessert die Navigation, default 250 |
+ | deinterlace="-filter:v yadif" | ||
+ | #deinterlace="-vf yadif_cuda" | ||
+ | |||
+ | #timestamps="-copyts" | ||
+ | timestamps="-copyts -start_at_zero" | ||
+ | #timestamps="-copytb 1" # bei falscher Duration | ||
+ | |||
+ | #h264enc=libx264 # default wenn nvenc nicht unterstützt wird. | ||
+ | #h264enc=h264_nvenc # wird autom. gewählt, wenn keine Angabe und in ffmpeg unterstützt. | ||
+ | #hevcenc="hevc_nvenc" # Standard libx265 | ||
+ | #gopt="-hwaccel cuvid" | ||
+ | #hwaccel=cuvid | ||
+ | |||
+ | videodir=/video | ||
+ | #videodir=$VIDEODIR | ||
+ | vdr=$VDRDIR/vdr | ||
+ | #vdr=vdr | ||
+ | </pre> | ||
Parameter lassen sich am Einfachsten durch '#' deaktivieren (die wichtigsten Schalter lassen sich über das Menü steuern). | Parameter lassen sich am Einfachsten durch '#' deaktivieren (die wichtigsten Schalter lassen sich über das Menü steuern). | ||
+ | ====Deinterlacing==== | ||
+ | |||
+ | Mit mediainfo wird geprüft, ob die Aufnahme progressive oder interlaced ist. Bei progressive wird die deinterlace-Angabe gelöscht. | ||
+ | |||
+ | ====cuvid==== | ||
+ | <pre> | ||
+ | hwaccel=cuvid</pre> | ||
+ | |||
+ | Abhängig von der Aufnahme wird folgendes vor -i eingefügt: | ||
+ | |||
+ | {| | ||
+ | | hevc: | ||
+ | | -c:v hevc_cuvid | ||
+ | |- | ||
+ | | h264: | ||
+ | | -c:v h264_cuvid | ||
+ | |- | ||
+ | | mpeg2video: | ||
+ | | -c:v mpeg2_cuvid | ||
+ | |} | ||
+ | |||
+ | ====ProjectX==== | ||
<pre> | <pre> | ||
join=projectx</pre> | join=projectx</pre> | ||
Zeile 107: | Zeile 170: | ||
Voraussetzung: | Voraussetzung: | ||
− | + | [[ProjectX]] installiert. | |
hiermit lassen sich fehlerhafte Aufzeichnungen reparieren. | hiermit lassen sich fehlerhafte Aufzeichnungen reparieren. | ||
Zeile 114: | Zeile 177: | ||
Eine echte Herrausforderung war die korrekte Zuordnung der Audio-Streams, hierzu musste ich das Projectx-Protokoll parsen. | Eine echte Herrausforderung war die korrekte Zuordnung der Audio-Streams, hierzu musste ich das Projectx-Protokoll parsen. | ||
+ | ====tsmuxer==== | ||
<pre> | <pre> | ||
join=tsmuxer</pre> | join=tsmuxer</pre> | ||
Zeile 123: | Zeile 187: | ||
Alternative zu cat bei TS, hierbei ist unbedingt auf A/V-Synchronität zu achten. Tsmuxer führt an den Schnittstellen gewisse Reperaturen durch, die von Vorteil sein können, aber, wie gesagt, zu Synchron-Problemen führen können. | Alternative zu cat bei TS, hierbei ist unbedingt auf A/V-Synchronität zu achten. Tsmuxer führt an den Schnittstellen gewisse Reperaturen durch, die von Vorteil sein können, aber, wie gesagt, zu Synchron-Problemen führen können. | ||
+ | ====aaclib==== | ||
<pre> | <pre> | ||
#aaclib="libfaac" | #aaclib="libfaac" | ||
Zeile 128: | Zeile 193: | ||
Die Fraunhofer Library ist aufgrund der besseren Qualität zu empfehlen. | Die Fraunhofer Library ist aufgrund der besseren Qualität zu empfehlen. | ||
+ | ====temp==== | ||
<pre> | <pre> | ||
temp=temp</pre> | temp=temp</pre> | ||
− | Verzeichnis, wird von projectx benutzt. | + | Verzeichnis, wird von projectx benutzt. Arbeitet man über NFS (Netzwerk), sollte hier ein lokales Laufwerk angegeben werden. |
+ | ====videodir==== | ||
<pre> | <pre> | ||
videodir=/video</pre> | videodir=/video</pre> | ||
Zeile 138: | Zeile 205: | ||
Videoverzeichnis, um vdr mitzuteilen, das Verzeichnis neu einzulesen. | Videoverzeichnis, um vdr mitzuteilen, das Verzeichnis neu einzulesen. | ||
+ | ====vdr==== | ||
<pre> | <pre> | ||
vdr=$VDRDIR/vdr</pre> | vdr=$VDRDIR/vdr</pre> | ||
Zeile 143: | Zeile 211: | ||
Aufruf von vdr um index neu zu erstellen. | Aufruf von vdr um index neu zu erstellen. | ||
+ | ===Protokolle=== | ||
− | ---- | + | /var/log/h264 - Protokoll, welche Filme konvertiert wurden. |
+ | |||
+ | ==Automation== | ||
+ | |||
+ | Die Automation ist ein Zusatz, der es ermöglicht, mehrere Filme autom. nacheinander umzuwandeln. | ||
+ | |||
+ | [[To_h264_automation]] | ||
+ | |||
+ | ==Installation== | ||
+ | |||
+ | Scripte kopiere ich immer nach /usr/local/bin | ||
+ | |||
+ | Dann sind sie von überall erreichbar. | ||
+ | |||
+ | to_h264.conf | ||
+ | |||
+ | entweder im Verzechnis von to_h264 oder /etc speichern. | ||
+ | |||
+ | mediainfo sollte installiert sein. | ||
+ | |||
+ | ==Hints And Tips== | ||
+ | |||
+ | Aufnahmen mit neueren Versionen, seit Klaus die TS-Ausgabe überarbeitet hat, lassen sich problemlos mit der Standard-Einstellung bearbeiten. | ||
+ | |||
+ | Bei Aufnahmen mit älteren Versionen muss man unterscheiden, ob Geschnittten oder Ungeschnitten, letztere sollten mit der Standardeinstellung funktionieren. | ||
+ | |||
+ | TS-Aufnahmen lassen sich mit tsmuxer (t) bearbeiten. Wobei ich meinen vdr so eingestellt habe, dass bei Schnittstellen eine neue Datei angelegt wird. Bei anderen Einstellungen wird das vermutlich nicht funktionieren, da ich vermute, dass tsmuxer nur die Übergänge bearbeitet. Grundsätzlich muss hier das Ergebnis auf A/V Synchchronität überprüft werden, da es hier manchmal zu Problemen kommt. | ||
+ | <br>Vorteil: die Dateien werden nur an den Übergängen bearbeitet. | ||
+ | |||
+ | Alternative, bei alten .vdr-Aufnahmen die Einzige, bearbeiten mit projectx (p) | ||
+ | Bei .vdr-Aufnahmen mit mehreren Tonspuren, die aus mehreren Dateien bestehen, kann es passieren, das Reihenfolge der Tonspuren teilweise von ffmpeg falsch erkannt wird, daher ist auch hier projectx empfehlenswert | ||
+ | |||
+ | ==Status== | ||
+ | |||
+ | letzte Version vom 28.1.2019 | ||
+ | |||
+ | ==Historie== | ||
+ | |||
+ | * 28.1.2019 neue Version | ||
+ | * 1.1.2018 neue Version | ||
+ | * 8.10.2013 Bugfix to_h264_server | ||
+ | * 18.8.2013 Automation | ||
+ | * 4.8.2013 | ||
+ | |||
+ | ==Links== | ||
Zeile 150: | Zeile 263: | ||
[http://www.vdr-portal.de/board16-video-disk-recorder/board6-capturen-digitalisieren-aufnehmen/118880-to-h264-vdr-aufnahme-mit-ffmpeg-in-h264-umwandeln to_h264] | [http://www.vdr-portal.de/board16-video-disk-recorder/board6-capturen-digitalisieren-aufnehmen/118880-to-h264-vdr-aufnahme-mit-ffmpeg-in-h264-umwandeln to_h264] | ||
− | [ | + | '''Achtung: link verweist auf Version -1''' |
+ | |||
+ | [https://www.vdr-portal.de/forum/index.php?thread/118880-to-h264-vdr-aufnahme-mit-ffmpeg-in-h264-umwandeln/&postID=1299926#post1299926 letzte Version] | ||
+ | |||
+ | Korrekter Link: | ||
+ | |||
+ | www.vdr-portal.de/forum/index.php?thread/118880-to-h264-vdr-aufnahme-mit-ffmpeg-in-h264-umwandeln/&postID=1311871#post1311871 | ||
+ | |||
+ | [[Kategorie:Skripte]] | ||
+ | [[Kategorie:Video- und Audiobearbeitung]] |
Aktuelle Version vom 8. April 2019, 10:57 Uhr
Inhaltsverzeichnis |
[Bearbeiten] Beschreibung
VDR Aufnahme mit ffmpeg oder libav (avconv) in h264 oder HEVC umwandeln.
Der Script ist dafür gedacht, einzelne Aufnahmen so nach h264 zu wandeln, dass sie kompatibel zum vdr bleiben.
Platzersparnis: bei Aufzeichnungen von ÖRs mit großen Bitraten Faktor 3 und mehr.
Aufgerufen wird der Script auf der cli im Aufnahmeverzeichnis der jeweiligen Aufnahme, genauer gesagt im .rec Verzeichnis.
Sollen eine größere Menge von Aufnahmen gewandelt werden siehe Automation.
Funktioniert mit .vdr und .ts
Ziel wird in .rec Version + 1 gespeichert. Alternativ ist auch Ausgabe in mkv oder mp4 möglich.
Video wird nach h264 konvertiert
Audio mp2 wird nach aac konvertiert (abschaltbar)
Profil 1
- unter 160 kb/s --> 96 kb/s
- bis 192 kb/s --> 128 kb/s
- über 192 kb/s --> 192 kb/s
Profil 2
- unter 160 kb/s --> 72 kb/s
- bis 192 kb/s --> 96 kb/s
- über 192 kb/s --> 128 kb/s
AC3 wird kopiert
Alle Tonspuren bleiben erhalten
Untertitel werden kopiert
Die Datei info.vdr wird ergänzt mit "L 99"
Softhddevice-plugin spielt das Ergebnis klaglos ab.
[Bearbeiten] Menü
/mnt/3TB/video/U/%Unsere_Welt_war_eine_schöne_Lüge/2012-03-29.22.27.21-0.rec #0:0[0xd2]: mpeg2video 720x576 16:9 #0:1[0xdc]( deu mp2 stereo 256 kb/s #0:2[0xdd]( mis mp2 mono 128 kb/s #0:3[0xe1]( deu ac3 stereo 448 kb/s ffmpeg Version 1.0.7 Format=ts Anzahl Dateien: 3 mkv= audio_auswahl= subtitel=yes join=concat aac_br_select=2 72,96,128 scale= press Enter (a1,a2,p,c,n,o,a,m,?)
Hilfe dazu:
? a audio_auswahl a1,a2 aac_br_select c cat f ffmpeg m mkv n no o concat p projectx t tsmuxer
[Bearbeiten] Einstellungen
[Bearbeiten] Schalter in to_h264.conf
aac_br_select=2 # 1 = 96,128,192 2 = 72,96,128 stop=yes # Bestätigung bei wichtigen Meldungen + Menüs #mkv=yes # Matroska Format erzeugen #outf=mkv # Matroska Format erzeugen #outf=mp4 # mp4 #audio_auswahl=yes # Reihenfolge und Auswahl der Audiospuren #join=ffmpeg # concat ffmpeg >= 1.1, wird bei < 1.1 autom. abgeschaltet #join=cat # concat für ffmpeg < 1.1 mittels cat, # bei ffmpeg >= 1.1 wird autom. builtin benutzt # funktioniert bei neueren TS-Files join=concat # avconv + ffmpeg >= 1.0 #join=tsmuxer # Alternative zu cat bei TS, Auf A/V-Synchronität achten #join=projectx # projectx for fixing problems # empfehlenswert bei .vdr # sehr empfehlenswert bei .vdr > 1 Datei und > 1 Audiospur #demux_x264=yes # nach demux mit x264 wandeln #demux_aac=yes # nach demux in aac wandeln # wenn beide an sind wird 00001.ts direkt mit tsmuxer erzeugt # von Vorteil bei problemat. ffmpeg Versionen # Muxing after projectx #mux=tsmuxer #mux=mkvmerge # testing only mux=ffmpeg # works fine #vcodec=hevc # transcode nach hevc (Standard h264) mp2=aac #mp2=copy #ac3_stereo=ac3 # ac3 stereo in ac3 192k Lautstärke wird angehoben, daher besser aac ac3_stereo=aac # ac3 stereo in aac 128k #scale="-vf scale=720:576:interl=1" # HD --> SD #scale="-vf crop=iw/4*3:ih,scale=720:576 -aspect 4:3" # HD -> SD 4:3 #scale="-vf crop=iw:ih-120 -aspect 16:9" # LB #aspect="-aspect 4:3" crf=21 # Qualität, default 23, kleiner ist besser gop="-g 50" # verbessert die Navigation, default 250 deinterlace="-filter:v yadif" #deinterlace="-vf yadif_cuda" #timestamps="-copyts" timestamps="-copyts -start_at_zero" #timestamps="-copytb 1" # bei falscher Duration #h264enc=libx264 # default wenn nvenc nicht unterstützt wird. #h264enc=h264_nvenc # wird autom. gewählt, wenn keine Angabe und in ffmpeg unterstützt. #hevcenc="hevc_nvenc" # Standard libx265 #gopt="-hwaccel cuvid" #hwaccel=cuvid videodir=/video #videodir=$VIDEODIR vdr=$VDRDIR/vdr #vdr=vdr
Parameter lassen sich am Einfachsten durch '#' deaktivieren (die wichtigsten Schalter lassen sich über das Menü steuern).
[Bearbeiten] Deinterlacing
Mit mediainfo wird geprüft, ob die Aufnahme progressive oder interlaced ist. Bei progressive wird die deinterlace-Angabe gelöscht.
[Bearbeiten] cuvid
hwaccel=cuvid
Abhängig von der Aufnahme wird folgendes vor -i eingefügt:
hevc: | -c:v hevc_cuvid |
h264: | -c:v h264_cuvid |
mpeg2video: | -c:v mpeg2_cuvid |
[Bearbeiten] ProjectX
join=projectx
Voraussetzung:
ProjectX installiert.
hiermit lassen sich fehlerhafte Aufzeichnungen reparieren. Bei .vdr Dateien erkennt ffmpeg nicht die richtige Reihenfolge der Audio-Streams, das führt zu Problemen bei Aufzeichnungen, die aus mehreren Dateien bestehen und mehr als einen Audio-Stream haben. Hier sollte unbedingt mit projectx gearbeitet werden.
Eine echte Herrausforderung war die korrekte Zuordnung der Audio-Streams, hierzu musste ich das Projectx-Protokoll parsen.
[Bearbeiten] tsmuxer
join=tsmuxer
Voraussetzung:
tsmuxer installiert.
Alternative zu cat bei TS, hierbei ist unbedingt auf A/V-Synchronität zu achten. Tsmuxer führt an den Schnittstellen gewisse Reperaturen durch, die von Vorteil sein können, aber, wie gesagt, zu Synchron-Problemen führen können.
[Bearbeiten] aaclib
#aaclib="libfaac" aaclib="libfdk_aac" # Fraunhofer Library - bessere Qualität
Die Fraunhofer Library ist aufgrund der besseren Qualität zu empfehlen.
[Bearbeiten] temp
temp=temp
Verzeichnis, wird von projectx benutzt. Arbeitet man über NFS (Netzwerk), sollte hier ein lokales Laufwerk angegeben werden.
[Bearbeiten] videodir
videodir=/video
Videoverzeichnis, um vdr mitzuteilen, das Verzeichnis neu einzulesen.
[Bearbeiten] vdr
vdr=$VDRDIR/vdr
Aufruf von vdr um index neu zu erstellen.
[Bearbeiten] Protokolle
/var/log/h264 - Protokoll, welche Filme konvertiert wurden.
[Bearbeiten] Automation
Die Automation ist ein Zusatz, der es ermöglicht, mehrere Filme autom. nacheinander umzuwandeln.
[Bearbeiten] Installation
Scripte kopiere ich immer nach /usr/local/bin
Dann sind sie von überall erreichbar.
to_h264.conf
entweder im Verzechnis von to_h264 oder /etc speichern.
mediainfo sollte installiert sein.
[Bearbeiten] Hints And Tips
Aufnahmen mit neueren Versionen, seit Klaus die TS-Ausgabe überarbeitet hat, lassen sich problemlos mit der Standard-Einstellung bearbeiten.
Bei Aufnahmen mit älteren Versionen muss man unterscheiden, ob Geschnittten oder Ungeschnitten, letztere sollten mit der Standardeinstellung funktionieren.
TS-Aufnahmen lassen sich mit tsmuxer (t) bearbeiten. Wobei ich meinen vdr so eingestellt habe, dass bei Schnittstellen eine neue Datei angelegt wird. Bei anderen Einstellungen wird das vermutlich nicht funktionieren, da ich vermute, dass tsmuxer nur die Übergänge bearbeitet. Grundsätzlich muss hier das Ergebnis auf A/V Synchchronität überprüft werden, da es hier manchmal zu Problemen kommt.
Vorteil: die Dateien werden nur an den Übergängen bearbeitet.
Alternative, bei alten .vdr-Aufnahmen die Einzige, bearbeiten mit projectx (p) Bei .vdr-Aufnahmen mit mehreren Tonspuren, die aus mehreren Dateien bestehen, kann es passieren, das Reihenfolge der Tonspuren teilweise von ffmpeg falsch erkannt wird, daher ist auch hier projectx empfehlenswert
[Bearbeiten] Status
letzte Version vom 28.1.2019
[Bearbeiten] Historie
- 28.1.2019 neue Version
- 1.1.2018 neue Version
- 8.10.2013 Bugfix to_h264_server
- 18.8.2013 Automation
- 4.8.2013
[Bearbeiten] Links
Diskussion im vdr-Portal: to_h264
Achtung: link verweist auf Version -1
Korrekter Link:
www.vdr-portal.de/forum/index.php?thread/118880-to-h264-vdr-aufnahme-mit-ffmpeg-in-h264-umwandeln/&postID=1311871#post1311871