Benutzer-Werkzeuge

Webseiten-Werkzeuge


mp4

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mp4 [2019-09-16 20:41:03] – [MP4] manfredmp4 [2021-10-17 17:45:34] (aktuell) – [MP4] manfred
Zeile 1: Zeile 1:
 +====== MP4 ======
 +
 +siehe auch: [[::MKVToolnix]]
 +
 +  * [[http://walter.bislins.ch/blog/index.asp?page=Videos+konvertieren+f%FCr+iPad#H_Empfohlenes_iPad_Format]]
 +
 +__FFmpeg 4.1.3 (Sept. 2019):__
 +  opus in MP4 support is experimental, add '-strict -2' if you want to use it.
 +  Could not write header for output file #0 (incorrect codec parameters ?): Experimental feature
 +  Error initializing output stream 0:1 --
 +
 +
 +===== MP4Box =====
 +
 +Das [[https://de.wikipedia.org/wiki/MP4|MP4]]-Dateiformat basiert auf dem Apple-QuickTime-Dateiformat.
 +Mit ''[[http://gpac.sourceforge.net|MP4Box]]'' kann man ''MP4''-, ''3GP''- und ''MOV''-Dateien bearbeiten.
 +
 +MP4Box installieren:
 +  > pkg install multimedia/gpac-mp4box
 +  > pkg info | fgrep -i mp4
 +  gpac-mp4box-0.5.0              Tool for merge mpg4 from Gpac
 +  mp4v2-1.9.1_1                  Library and tools to read, create, and modify mp4 files
 +
 +Inhalt des Paketes anzeigen:
 +  > pkg info -l multimedia/gpac-mp4box                                                               
 +  gpac-mp4box-0.5.0:
 +          /usr/local/bin/mp4box
 +          /usr/local/man/man1/mp4box.1.gz
 +          /usr/local/share/licenses/gpac-mp4box-0.5.0/LGPL21
 +          /usr/local/share/licenses/gpac-mp4box-0.5.0/LICENSE
 +          /usr/local/share/licenses/gpac-mp4box-0.5.0/catalog.mk
 +
 +Hilfe anzeigen:
 +  > mp4box -h
 +  MP4Box [option] input [option]
 +   -h general           general options help
 +   -h hint              hinting options help
 +   -h import            import options help
 +   -h encode            encode options help
 +   -h meta              meta handling options help
 +   -h extract           extraction options help
 +   -h dump              dump options help
 +   -h swf               Flash (SWF) options help
 +   -h crypt             ISMA E&A options help
 +   -h format            supported formats help
 +   -h rtp               file streamer help
 +   -h live              BIFS streamer help
 +  
 +   -nodes               lists supported MPEG4 nodes
 +   -node NodeName       gets MPEG4 node syntax and QP info
 +   -xnodes              lists supported X3D nodes
 +   -xnode NodeName      gets X3D node syntax
 +   -snodes              lists supported SVG nodes
 +   -snode NodeName      gets SVG node syntax
 +   -languages           lists supported ISO 639 languages
 +  
 +   -quiet                quiet mode
 +   -noprog               disables progress
 +   -v                   verbose mode
 +   -logs                set log tools and levels, formatted as a ':'-separated list of toolX[:toolZ]@levelX
 +   -version             gets build version
 +
 +ein Stück aus dem MP4-Film ausschneiden:
 +  > mp4box -splitz 5487:5590 Terry_Pratchett_-_Ab_die_Post_13-05-19_12-40_rtl.mp4
 +  Adjusting chunk start time to previous random access at 5486.60 sec
 +  Adjusting chunk end time to previous random access at 5587.60 sec
 +  Extracting chunk Terry_Pratchett_-_Ab_die_Post_13-05-19_12-40_rtl_5486_5587.mp4 - duration 101.00s (5486.60s->5590.00s)
 +  
 +  > ls -lha
 +  -rw-r-----     1 fritz  www   1.2G Jul 29 01:49 Terry_Pratchett_-_Ab_die_Post_13-05-19_12-40_rtl.mp4
 +  -rw-r--r--     1 fritz  www    15M Jul 29 01:51 Terry_Pratchett_-_Ab_die_Post_13-05-19_12-40_rtl_5486_5587.mp4
 +
 +
 +==== mehrere MP4-Filme verbinden ====
 +
 +
 +=== mit FFmpeg verbinden ===
 +
 +Die Filme, die mit ''concat'' zusammengesetzt werden sollen, müssen im Arbeitsverzeichnis liegen (PWD), denn in dem Pfad darf kein Verzeichnis vorkommen.
 +Dateinamen, mit Verzeichnissen gelten als "unsicher", will man die Filme dennoch mit Verzeichnis angeben, dann muss man die Option ''-safe 0'' hinzufügen.
 +Zum Beispiel so => ''concat -safe 0 -i filmteile.txt''
 +
 +  * [[https://openscript.ch/2016/03/videodateien-mit-ffmpeg-zusammenfügen/]]
 +    * ''ffmpeg -i "concat:teil1.mp4|teil2.mp4|teil3.mp4" -c:v copy -c:a copy -c:s copy -f mp4 -y ausgabe.mp4''
 +  * [[https://carstens.space/mit-ffmpeg-mehrere-dateien-zusammenfuehren/]]
 +    * ''ffmpeg -safe 0 -f concat -i <(printf "file '$PWD/%s'\n" *.mp4) -c copy -y ausgabe.mp4''
 +  * [[https://petoria.de/mehrere-videos-zusammenfuegen-ohne-sie-neu-zu-kodieren/]]
 +    * ''ffmpeg -f concat -i filmteile.txt -c:v copy -c:a copy -c:s copy -f mp4 -y ausgabe.mp4''
 +
 +Es müssen alle zu verbindenden Filme genau den gleichen Aufbau haben.
 +Das heißt, um sicher zu gehen, sollten alle Teile mit genau den gleichen Parametern transkodiert worden sein.
 +
 +Auch die Reihenfolge der einzelnen Spuren müssen in allen Teilen identisch sein.
 +Es darf also nicht die Audio-Spur in einem Teil die ID "0" und in dem anderen Teil die ID "1" haben.
 +Und auch müssen in allen oder in keinem eine Untertitel-Spur vorhanden sein.
 +
 +...sie müssen wirklich alle absolut gleich aufgebaut sein!
 +
 +Als erstes müssen wir eine Liste mit allen Filmteilen im richtigen Format anlegen:
 +  > echo "file 'teil1.mp4'" > filmteile.txt
 +  > echo "file 'teil2.mp4'" >> filmteile.txt
 +  > echo "file 'teil3.mp4'" >> filmteile.txt
 +
 +jetzt können alle Teile verbunden werden:
 +  > ffmpeg -f concat -i filmteile.txt -c:v copy -c:a copy -c:s copy -f mp4 -y kompletterfilm.mp4
 +
 +
 +=== mit mp4box verbinden ===
 +
 +eine Video- und eine Audio-Datei zu einem Film zusammenfühgen:
 +  mp4box -add video.h264 -add audio.aac output.mp4
 +
 +eine Video-Datei mit einer bestimmten FPS-Zahl mit einer Audio-Datei zu einem Film zusammenfühgen:
 +  mp4box -add video.h264:fps=X -add audio.aac output.mp4
 +
 +eine Video-Datei (alle Video-Spuren) mit einer bestimmten ID und FPS-Zahl mit einer Audio-Datei (alle Audio-Spuren) zu einem Film zusammenfühgen:
 +  mp4box -add 'video.h264#video:trackID=1' -hint -fps 25.000 -add 'audio.aac#audio:trackID=2' video.mp4
 +
 +eine Video-Datei mit einer bestimmten FPS-Zahl + Namen + Sprachbezeichnung und eine Audio-Datei mit Namen + Sprachbezeichnung zu einem Film zusammenfühgen:
 +  mp4box -add "video.h264:fps=23.976:name=MyMovieMP4:lang=en" -add "audio.aac:lang=en:name=2 Channel Audio" "video.mp4"
 +
 +eine Video- und eine Audio-Datei mit einer bestimmten FPS-Zahl zu einem Film zusammenfühgen:
 +  mp4box -fps 24 -add video.h264 -add audio.ac3 video.mp4
 +  
 +  AVC-H264 import - frame size 1280 x 720 at 24.000 FPS
 +  Import results: 31671 samples - Slices: 5672 I 125048 P 122648 B - 32288 SEI - 4936 IDR
 +  AC3 import - sample rate 48000 - 6 channels
 +  Saving to video.mp4: 0.500 secs Interleaving
 +
 +mehrere Filme hintereinander zusammenfühgen:
 +  mp4box -cat film1.m2t ... video.mp4
 +
 +ein Stück aus einem Film rausschneiden (Zeitangabe in Sekunden):
 +  mp4box -split-chunk [Start]:[Ende] video.mp4 ...
 +  mp4box -split-chunk 300:360 video.mp4 ...
 +