Was ist die schnellste und ressourcenschonendste Methode zum Aufteilen einer MP4-Datei?
Ich habe es mit ffmpeg versucht, habe aber einen Fehler erhalten:
$ ffmpeg -vcodec copy -ss 0 -t 00:10:00 -i /home/asafche/Videos/myVideos/MAH00124.MP4 /home/asafche/Videos/myVideos/eh.mp4
FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1.1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --extra-version=4:0.5.1-1ubuntu1.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 1 / 52.20. 1
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Mar 31 2011 18:53:20, gcc: 4.4.3
Seems stream 0 codec frame rate differs from container frame rate: 119.88 (120000/1001) -> 59.94 (60000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/asafche/Videos/myVideos/MAH00124.MP4':
Duration: 00:15:35.96, start: 0.000000, bitrate: 5664 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x720, 59.94 tbr, 59.94 tbn, 119.88 tbc
Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16
Output #0, mp4, to '/home/asafche/Videos/myVideos/eh.mp4':
Stream #0.0(und): Video: libx264, yuv420p, 1280x720, q=2-31, 90k tbn, 59.94 tbc
Stream #0.1(und): Audio: 0x0000, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1
Was mache ich falsch und wie teile ich eine mp4-Datei richtig auf?
video
file-format
Asaf Chertkoff
quelle
quelle
Antworten:
Mit ffmpeg können Sie Dateien mit dem folgenden Befehl teilen:
Dabei beginnt START in Sekunden oder im Format hh: mm: ss. LÄNGE ist die Blocklänge in Sekunden oder im Format hh: mm: ss
Sie müssen diesen Befehl also einige Male ausführen, je nachdem, wie lange Ihr Video dauert. Angenommen, Ihr Video ist 31 Minuten lang und Sie möchten, dass es in 15-Minuten-Blöcke aufgeteilt wird. Gehen Sie dazu wie folgt vor:
Es gibt ein Python-Skript, das Sie verwenden können und das dies automatisch ausführt (dh Videodatei, Blockgröße in Sekunden und Erzeugung einzelner abspielbarer Videodateien): http://icephoenix.us/notes-for-myself/auto-splitting-video -Datei-in-gleichen-Stücken-mit-ffmpeg-und-Python /
quelle
Wenn Sie es vorziehen, eine GUI zu verwenden, gibt es Avidemux in den Repositories. Das Definieren der Schnittpunkte ist auf diese Weise viel einfacher!
Die Auswahlmarkierungen definieren den Teil des Videos, der exportiert werden soll. Durch "Kopieren" in Audio und Video wird eine Neukodierung vermieden. Sie können den Container auch auswählen oder ändern (avi, mp4, mkv usw.).
Ich habe einige Videos von einer Kamera geschnitten und es war sofort!
quelle
Sie sind sich nicht sicher, was Sie brauchen, können dies aber in ein Terminal eingeben: Um ein Terminal zu öffnen, drücken Sie Ctrl+ Alt+T
split -b 4M file.mp4 part_file
Dadurch werden die Dateien in Stücke von 4 Megabyte aufgeteilt. Um die Datei erneut zu erstellen, geben Sie ein
cat part_file[a-c] > file.mp4
Beachten Sie, dass ichIch werde mit einem Beispiel erklären.a-c
in der Klammer eingegeben habe , weil der Split 3 Dateien erstellt. In Ihrem Fall müssen Sie möglicherweise mehr sehen.Dies zeigt, dass ich eine einzelne Datei von 9,3 MB habe. Zum Teilen gebe ich ein:
Nach dem Aufteilen erhalte ich die Dateien als:
Beachten Sie die beiden an den Dateinamen angehängten Zeichen.
So rufen Sie die Datei zurück:
quelle
Verwenden Sie mkvmerge aus dem Paket mkvtoolnix. Verwenden Sie so etwas wie
Dies würde Ihre Datei in 1 GB Blöcke aufteilen. Sie können auch Zeitangaben verwenden.
quelle
Wenn dies ein MP4 Teil 2 ist, dann können Sie mit einem sehr sorgfältigen Ansatz die Datei ohne Encoder / Decoder bearbeiten. Diese Antwort richtet sich an Personen mit Programmierhintergrund und Hex-Editor, die die Datei "" intakt "" halten möchten.
Der erste Teil der Datei ist ein mdat, der zweite ein moov, das Metadaten enthält, die vom Decoder zum Auffinden von Blöcken verwendet werden, die Samples enthalten (codierte Bilder und Ton, die nicht wichtig zu wissen sind). Dann gibt es STCO, STTS, STSC usw. Dies nennt man "Atome". Sie geben den Versatz, die Länge usw. der einzelnen Blöcke an. Wenn Sie einen sauberen Job machen, können Sie mehrere Instanzen Ihres Videos und eine andere Version mit verschiedenen Stücken erstellen. Die Datei kann dann in Playern abgespielt und auf Video-Websites verdaut werden. Wenn Sie ein Codierer sind, erstellen Sie einen MP4-Parser oder verwenden Sie einen vorhandenen, um die Teile und ihre Offsets zu verfolgen. Auf diese Weise können Sie mehr über das Format erfahren und Dateien automatisch neu erstellen.
quelle
Die einfachste und kinderleichte Methode ist die Verwendung von MP4Box:
# apt install gpac
$ MP4Box -split 15 /home/asafche/Videos/myVideos/MAH00124.MP4
(der Parameter ist die Zeit in Sekunden). Weitere Aufteilungsmöglichkeiten, zum Beispiel nach Größe, finden Sie unter https://gpac.wp.imt.fr/mp4box/mp4box-documentation/ oderMP4Box -h general
Die Verkettung ist ähnlich einfach.
quelle
Ein weiteres Open-Source- GUI-Tool , das Videos aufteilen und vieles mehr kann, ist die Handbremse
Zum Beispiel teile ich hier mein Video auf 24.53 (mm: ss) und schneide den Frame auf der rechten Seite ab:
Sie können die Vorschau der Ausgabe leicht sehen - mit der Schaltfläche "Vorschau".
quelle