Benutzer-Werkzeuge

Webseiten-Werkzeuge


ffmpeg

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ffmpeg [2023-01-02 14:18] – [Transkodieren mit allen Streams] fzapffmpeg [2023-12-11 13:49] (aktuell) – Untertitel fzap
Zeile 14: Zeile 14:
   * -c:a audio codec, bei copy wird er übernommen   * -c:a audio codec, bei copy wird er übernommen
  
-==== h265 2pass-Kodierung  ====+==== HEVC, h265 2pass-Kodierung  ====
  
 <code bash>ffmpeg -y -i input.mp4 -c:v libx265 -b:v 2600k -x265-params pass=1 -an -f null /dev/null && \ <code bash>ffmpeg -y -i input.mp4 -c:v libx265 -b:v 2600k -x265-params pass=1 -an -f null /dev/null && \
Zeile 21: Zeile 21:
  
 ==== libaom AV1 2 pass-Kodierung==== ==== libaom AV1 2 pass-Kodierung====
 +
 +Leider ist die AV1-Kodierung auf einem Standard-Notebook oder Office-PCs unglaublich langsam und daher unrealistisch (Stand 01/2023).  Ohne effektive GraKa kommt man danicht weiter.
 +
 <code bash> <code bash>
 ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 2M -pass 1 -an -f null /dev/null && \ ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 2M -pass 1 -an -f null /dev/null && \
Zeile 37: Zeile 40:
   * -pass 1 = erster Durchgang   * -pass 1 = erster Durchgang
   * -pass 2 = zweiter Durchgang   * -pass 2 = zweiter Durchgang
-  * -an = Audio auslassen (im ersten Durchgang)+  * -an = Audio auslassen (im ersten Durchgang) "audio none"
   * -f = format    * -f = format 
   * null /dev/null [Linux] = Null Muxer (ohne Datei-Ausgabe),  null NUL[Windows]   * null /dev/null [Linux] = Null Muxer (ohne Datei-Ausgabe),  null NUL[Windows]
-  * -c:a = audio codec opus+  * -c:a libopus = audio codec opus
  
 ===== video/audio-delay korrigieren ===== ===== video/audio-delay korrigieren =====
 Fall 1: audio beginnt vor video (150 ms = 0.15 s) Fall 1: audio beginnt vor video (150 ms = 0.15 s)
 <code bash> <code bash>
-ffmpeg -i video.mp4 -itsoffset 0.150 -i video.mp4 -vcodec copy -acodec copy -map 0:0 -map 1:1 video_insync.mp4+ffmpeg -i video.mp4 -itsoffset 0.150 -i video.mp4 -c:v copy -c:a copy -map 0:0 -map 1:1 video_insync.mp4
 </code> </code>
 Fall 2: video beginnt vor audio (150 ms = 0.15 s) Fall 2: video beginnt vor audio (150 ms = 0.15 s)
 <code bash> <code bash>
-ffmpeg -i video.mp4 -itsoffset 0.150 -i video.mp4 -vcodec copy -acodec copy -map 0:1 -map 1:0 video_insync.mp4+ffmpeg -i video.mp4 -itsoffset 0.150 -i video.mp4 -c:v copy -c:a copy -map 0:1 -map 1:0 video_insync.mp4
 </code> </code>
  
Zeile 61: Zeile 64:
  
 ===== video schneiden ===== ===== video schneiden =====
-<code bash>ffmpeg -ss [start] -i in.mp4 -[duration] -c copy out.mp4</code>+<code bash>ffmpeg -i in.mp4 -ss [start] -t [dauer] -c copy out.mp4</code> 
 +oder  
 +<code bash>ffmpeg -i in.mp4 -ss [start] -to [bis-zum-zeitpunkt] -c copy out.mp4</code> 
 + 
 +===== audio file einem video hinzufügen ===== 
 + 
 +<code> 
 +ffmpeg -i IN-video-mit-EN-tonspur.mp4 \ 
 +-i audio-DE.m4a \ 
 +-c copy \ 
 +-map 0:v:0 \ 
 +-map 0:a:0 \ 
 +-map 1:a:0 \ 
 +-metadata:s:a:0 language=eng \ 
 +-metadata:s:a:1 language=deu \ 
 +OUT-video-EN-DE.mp4 
 +</code> 
 + 
 +Das ''mapping'': Datei ''0'' ist das Video, Datei ''1'' die deutsche Audiospur und schreibt die Metadaten der Sprache mit hinein, damit man bei switchen im Video die entsprechende Tonspur angezeigt bekommt 
  
  
Zeile 67: Zeile 89:
   * [[https://trac.ffmpeg.org/wiki/Encode/H.264|h264-encoding guide]]   * [[https://trac.ffmpeg.org/wiki/Encode/H.264|h264-encoding guide]]
   * [[https://trac.ffmpeg.org/wiki/Encode/AV1|libaom AV1 Encoding Guide]]   * [[https://trac.ffmpeg.org/wiki/Encode/AV1|libaom AV1 Encoding Guide]]
 +  * [[https://ffmpeg.app|ffmpeg wasm-version for using online]]
  
 ==== videoformate 16:9 ==== ==== videoformate 16:9 ====
Zeile 89: Zeile 112:
 ===== Transkodieren mit allen Streams ===== ===== Transkodieren mit allen Streams =====
  
-entscheidend ist ``-map 0``, das alles streams einbindet+entscheidend ist ''-map 0'', das alle streams einbindet
  
 <code bash> <code bash>
Zeile 95: Zeile 118:
 </code> </code>
  
-oder mit transcode+oder mit h264 transcode-Einstellungen
  
 <code bash> <code bash>
Zeile 106: Zeile 129:
 -codec:s copy \ -codec:s copy \
 output.mp4 output.mp4
 +</code>
 +
 +===== Untertitel einbinden =====
 +
 +<code>
 +
 +
 +ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4
 +
 </code> </code>
ffmpeg.1672665505.txt.gz · Zuletzt geändert: 2023-01-02 14:18 von fzap