Quelle est la méthode la plus rapide et la moins consommatrice de ressources pour fractionner un fichier MP4?
J'ai essayé ffmpeg mais j'ai eu une erreur:
$ 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
Qu'est-ce que je fais de mal et comment diviser correctement un fichier mp4?
Avec ffmpeg, vous pouvez diviser un fichier à l’aide de la commande suivante:
ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss START -t LENGTH OUTFILE.mp4
où START commence à positionner en secondes ou au format hh: mm: ss LONGUEUR est la longueur de morceau en secondes ou au format hh: mm: ss
Vous devrez donc exécuter cette commande plusieurs fois en fonction de la durée de votre vidéo. Si, disons, votre vidéo dure 31 minutes et que vous voulez une fraction de séquence de 15 minutes, voici comment vous la diffusez:
ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 0 -t 00:15:00 OUTFILE-1.mp4
ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 00:15:00 -t 00:15:00 OUTFILE-2.mp4
ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 00:30:00 -t 00:15:00 OUTFILE-3.mp4
Vous pouvez utiliser un script python pour le faire automatiquement (c.-à-d. Qu'il prend un fichier vidéo, la taille du bloc en secondes et génère des fichiers vidéo pouvant être lus individuellement): http://icephoenix.us/notes -pour-moi-même/auto-fractionnement-fichier-vidéo-en-morceaux-égaux-avec-ffmpeg-and-python /
Si vous préférez utiliser une interface graphique, avidemux est disponible dans les référentiels. Définir les points de coupe est beaucoup plus facile de cette façon!
Les marqueurs de sélection définissent la partie de la vidéo qui sera exportée. L'utilisation de "Copier" en audio et vidéo évite le réencodage. Vous pouvez également choisir le conteneur ou le modifier (avi, mp4, mkv, etc.).
J'ai fait un tas de coupures sur certaines vidéos d'une caméra et c'était instantané!
Vous n'êtes pas sûr de votre besoin, mais vous pouvez le saisir dans un terminal: Pour ouvrir un terminal, appuyez sur Ctrl + Alt + T
split -b 4M file.mp4 part_file
Cela divisera les fichiers en morceaux de 4 mégaoctets. Pour recréer le fichier à nouveau, tapez
cat part_file[a-c] > file.mp4
Notez que j'ai tapé Je vais expliquer avec un exemple.a-c
dans le support, car le groupe créé 3 fichiers. dans votre cas, il vous faudra peut-être en voir plus.
$ ls -lh
-rwxr-xr-x 1 root root 9.3M 2011-04-17 20:09 file.mp4
Cela montre que je n'ai qu'un seul fichier, de 9,3 MB. Pour diviser, je tape:
$ split -b 2M file.mp4 part_file
Après division, je récupère les fichiers en tant que:
$ ls -lh
-rwxr-xr-x 1 root root 9.3M 2011-04-17 20:09 file.mp4
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileaa
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileab
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileac
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_filead
-rw-r--r-- 1 thetuxracer thetuxracer 1.3M 2011-04-17 20:12 part_fileae
Notez les deux caractères ajoutés au nom de fichier.
Pour récupérer le fichier:
$ cat part_filename[start-end][start-end] > file.mp4
Utilisez mkvmerge à partir du package mkvtoolnix. Utilisez quelque chose comme
mkvmerge -o outputprefix --split 1G origfile.mp4
Cela diviserait votre fichier en blocs de 1 Go. Vous pouvez également utiliser des indications de temps.
S'il s'agit d'une MP4 partie 2, alors avec une approche très méticuleuse, vous pouvez continuer le fichier sans encodeur/décodeur. Cette réponse est destinée aux personnes ayant une formation en programmation et un éditeur hexadécimal qui souhaitent conserver le fichier "" intact "".
La première partie du fichier est un mdat, la seconde est un moov, contenant des métadonnées utilisées par le décodeur pour localiser des morceaux, qui contiennent des échantillons (images codées et son, qu’il est important de ne pas connaître). Ensuite, il y a STCO, STTS, STSC, etc. Cela s'appelle des "atomes". Ils indiquent quels sont le décalage, la longueur, etc. de chacun des morceaux. Si vous effectuez un travail correct, vous pouvez créer plusieurs instances de votre vidéo et une version différente avec des morceaux différents. Le fichier sera alors lisible sur les lecteurs et digéré sur les sites Web de vidéos. Si vous êtes un codeur, créez un analyseur MP4 ou utilisez un analyseur existant pour garder une trace des pièces et de leurs décalages. Cela vous aidera à en savoir plus sur le format et à reconstruire les fichiers automatiquement.
La méthode la plus simple et la plus infaillible consiste à utiliser MP4Box:
# apt install gpac
$ MP4Box -split 15 /home/asafche/Videos/myVideos/MAH00124.MP4
(le paramètre est le temps en secondes). Pour d'autres possibilités de partage, par exemple par taille, voir https://gpac.wp.imt.fr/mp4box/mp4box-documentation/ ou MP4Box -h general
La concaténation est aussi simple.