2010-06-14 7 views
2

Hallo.vidéo partagée (avi/h264) sur l'image clé

J'ai un gros fichier vidéo. ffmpeg, tcprobe et d'autres outils disent, c'est un flux h264 dans un conteneur AVI.

Maintenant, je voudrais découper de petits morceaux forment la vidéo.

  1. Problème: L'index de la jonction vidéo est corrompu/détruit. J'ai en quelque sorte fixé cela via mplayer -forceidx -saveidx <IndexFile> <BigVideoFile>. Le problème ici est, que je suis maintenant bloqué avec mplayer/mencoder qui peut utiliser ce fichier d'index via -loadidx <IndexFile>. J'ai essayé de corriger l'index comme décrit dans man aviindex (mplayer -frames 0 -saveidx mpidx broken.avi ; aviindex -i mpidx -o tcindex ; avimerge -x tcindex -i broken.avi -o fixed.avi), mais cela n'a pas résolu ma vidéo - ce qui signifie que la plupart des outils que j'ai testés ne pouvaient pas rechercher dans le fichier vidéo. Problème: J'ai découpé des parties de la vidéo via la commande suivante: mencoder -loadidx in.idx -ss 8578 -endpos 20 -oac faac -ovc x264 -sws 9 -lavfopts format=mp4 -x264encopts <LotsOfOpts> -of lavf -vf scale=800:-10,harddup in.avi -o out.mp4. Maintenant, le problème est que certaines vidéos sont corrompues au début. Je pense que c'est parce que le fait, que je ne coupe pas nécessairement à l'image clé.

Questions:

  1. Quelle est la meilleure façon de corriger l'index d'un avi « en ligne » de sorte que chaque outil peut à nouveau fonctionner comme prévu avec elle?

  2. Comment puis-je découper sur les images clés? Y a-t-il une option mencoder pour cela?

  3. Les images clés proviennent-elles d'une fréquence? Comment trouver cette fréquence? (Donc, avec un peu de maths, il devrait être possible de calculer l'image clé suivante et de la couper)

  4. Y a-t-il un autre moyen de scinder ce film? Le faire à la main n'est pas une option, je dois découper plus de 1000 morceaux ...

Merci beaucoup!

Répondre

0

Je tenterais d'utiliser avidemux pour réparer le fichier avant de faire quoi que ce soit. Vous pouvez également avoir de meilleurs résultats en utilisant un conteneur basé sur MP4 que AVI. Pour garantir que les intervalles spécifiés sont bien définis sur l'image-clé, je suggère d'encoder avec FFMPEG avec l'option: -g 1 avant d'utiliser le fractionnement ci-dessous pour garantir que chaque image est en fait une image-clé. FFMPEG se réfère aux images clés comme GOP ou groupes d'images à la place.

ffmpeg -i input.avi -g 1 -vcodec copy -acodec copy out.avi 

Puis plusieurs divisions (avec FFMPEG):

ffmpeg -i input.avi -ss 00:00:10 -t 00:00:30 out1.avi -ss 00:00:35 -t 00:00:30 out2.avi 

Quelques plus d'options pour essayer:

x264 Mapping FFMPEG encoding in linux

+0

En tant qu'entrée, je suis coincé avec un conteneur AVI. Je l'obtiens d'une caméra réseau, c'est la seule option. Comme format de sortie je voudrais aller avec h264/mp4 de toute façon. Je vais essayer avidemux (avoir à RTFM) pour réparer l'index, puis ffmpeg -g 1 - mais je me demande comment cela va augmenter la taille de mon fichier. Ma vidéo d'entrée a déjà environ 10GB. Merci beaucoup pour votre contribution! –