Diviser un fichier MP4

29

Quelle est la méthode la plus rapide et la moins gourmande en 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 mal et comment diviser correctement un fichier mp4?

    
posée Asaf Chertkoff 17.04.2011 - 14:57
la source

6 réponses

54

Avec ffmpeg, vous pouvez diviser le fichier en utilisant la commande suivante:

ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss START -t LENGTH OUTFILE.mp4

où START commence à poser en secondes ou au format hh: mm: ss LENGTH est la longueur du bloc 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 nous disons que votre vidéo dure 31 minutes et que vous souhaitez la diviser en morceaux de 15 minutes, voici comment vous la lancez:

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

Il existe un script python que vous pouvez utiliser automatiquement (par exemple, prend un fichier vidéo, taille du bloc en secondes et génère des fichiers vidéo lisibles individuels): lien

    
réponse donnée Alex 17.04.2011 - 21:55
la source
9

Si vous préférez utiliser une interface graphique, avidemux est disponible dans les dépôts. Définir les points de coupure est beaucoup plus facile!

Les marqueurs de sélection définissent la partie de la vidéo qui sera exportée, en utilisant "copier" dans l'audio et la 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’un appareil photo et c’était instantané!

    
réponse donnée user24362 03.09.2011 - 21:23
la source
4

Vous ne savez pas exactement ce dont vous avez 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é a-c dans le crochet, car la séparation a créé 3 fichiers. dans votre cas, vous devrez peut-être en voir plus. Je vais vous expliquer avec un exemple.

$ ls -lh
-rwxr-xr-x 1 root        root        9.3M 2011-04-17 20:09 file.mp4

Cela montre que j'ai un seul fichier, de 9,3 Mo. Pour séparer, je tape:

$ split -b 2M file.mp4 part_file

Après le fractionnement, 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
    
réponse donnée theTuxRacer 17.04.2011 - 16:47
la source
4

Utilisez mkvmerge à partir du paquet 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 les indications de temps.

    
réponse donnée rtega 12.11.2015 - 10:00
la source
0

Si c'est une partie 2 de MP4, 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 un arrière-plan de 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 les métadonnées utilisées par le décodeur pour localiser les morceaux, qui contiennent des échantillons (images codées et son, pas important de savoir). Ensuite, il y a STCO, STTS, STSC, etc. C'est ce qu'on appelle les "atomes". Ils indiquent quels sont le décalage, la longueur, etc. de chacun des morceaux. Si vous effectuez un travail propre, vous pouvez créer plusieurs instances de votre vidéo et une version différente avec des morceaux différents. Le fichier sera alors jouable dans les lecteurs et digéré sur les sites Web vidéo. Si vous êtes un codeur, créez un analyseur MP4 ou utilisez un analyseur existant pour suivre les pièces et leurs décalages. Cela vous aidera à en savoir plus sur le format et à reconstruire les fichiers automatiquement.

    
réponse donnée Léon Pelletier 13.06.2013 - 01:22
la source
0

La méthode la plus simple et la plus simple consiste à utiliser MP4Box:

  1. # apt install gpac
  2. $ MP4Box -split 15 /home/asafche/Videos/myVideos/MAH00124.MP4 (le paramètre est temps en secondes). Pour d'autres possibilités de fractionnement, par exemple par taille, voir lien ou MP4Box -h general

La concaténation est tout aussi simple.

    
réponse donnée Csaba Toth 09.01.2018 - 02:57
la source

Lire d'autres questions sur les étiquettes