Concaténation des fichiers vidéo ogg à partir de la ligne de commande

18

D'accord. J'ai quelques fichiers ogg que j'ai créés à l'aide d'un outil d'enregistrement de bureau . Je les ai transcodés en utilisant ffmpegune fois (principalement pour couper les débuts et les fins).

Maintenant, j'ai 3 de ces fichiers que je veux concaténer en un seul .ogvfichier. J'ai essayé d'utiliser oggCat, il s'est écrasé avec une sorte d'erreur (j'ai essayé de concaténer un fichier à lui-même en utilisant oggCatet cela a échoué trop me faisant croire que ma distribution expédie une version cassée du paquet). Simplement, catles fichiers fonctionnent, mais je ne peux pas chercher ce qui n'est pas cool. mencodercourir comme ça mencoder -ovc lavc -oac lavc file1.ogv file2.ogv file3.ogv -o complete.ogv. Il transcode les fichiers en un aviet coupe quelques-unes des 3 vidéos.

Alors, comment dois-je faire cela?

Mise à jour 1: Ma solution de contournement actuelle consiste à transcoder les 3 fichiers en les .mpgutilisant ffmpeg, puis à catles regrouper puis à les recoder à nouveau ogv.

Mise à jour 2: PiTiVi fonctionne pour ce genre de chose, mais j'ai besoin de quelque chose de la ligne de commande que je peux automatiser et écrire.

Noufal Ibrahim
la source
@gry, Qu'est-ce qui manque dans la réponse actuelle?
soandos
@gry, mais vous voulez exactement les mêmes fonctionnalités, mais un nom différent? ou y a-t-il une différence de fonctionnalité que vous recherchez. Je ne suis pas d'accord que c'est ce que le PO demandait. Il voulait que ses fichiers soient concaténés et oggCat ne fonctionnait pas. Maintenant c'est le cas, donc je ne suis pas au courant de ce qui manque.
soandos
@soandos: La question d'origine était "oggCat ne fonctionne pas pour moi, existe-t-il une alternative?" et bien que le demandeur l'ait fait fonctionner, il pourrait être utile de trouver des alternatives possibles comme prévu initialement.
@gry, il 1) est corrigé maintenant (voir le dernier commentaire sur ma réponse) et 2) Je ne trouve pas le commentaire que vous citez.
soandos
1
Mon intention principale était de faire concaténer les vidéos. Au moment où les réponses sont arrivées, je me suis éloigné de l'OGV et je ne me suis donc pas trop soucié de la question. J'ai explicitement mentionné que je ne voulais pas utiliser oggCat car cela ne fonctionnait pas pour moi lorsque j'ai posé la question.
Noufal Ibrahim

Réponses:

9

Ogg Video Tools semble faire ce que vous cherchez.

Brève description:

Parfois, ce serait bien de concaténer (joindre) deux fichiers vidéo ou plus. Pour cela, vous pouvez utiliser oggCat, qui crée un fichier vidéo Ogg continu à partir des fichiers donnés.

# oggCat newFile.ogv file1.ogv file2.ogv [ file3.ogv [...] ]

Remarque: les fichiers vidéo doivent correspondre en fréquence d'images, espace d'images clés, taille d'image, etc.

Voir plus ici et ici .

soandos
la source
2
J'ai mentionné mes expériences avec oggCat dans ma question. N'a pas fonctionné même lorsque j'ai essayé de concaténer le fichier à lui-même.
Noufal Ibrahim
Avez-vous essayé de télécharger le package directement? Et quelle était l'erreur?
soandos
1
J'ai essayé de le compiler depuis la source. J'ai obtenu un très gros hexdump puis un segfault.
Noufal Ibrahim
ce fichier? Vous voudrez peut-être essayer une version antérieure si la compilation échoue.
soandos
1
Je ne sais pas si cela vous est utile, mais la version binaire que j'ai téléchargée fonctionne.
soandos
5

J'utiliserais le démultiplexeur concat de ffmpeg pour cela (nécessite une version récente de ffmpeg).

Tout d'abord, créez un fichier appelé inputs.txt (ou n'importe quel nom arbitraire), contenant des lignes comme:

file '/path/to/input1.ogv'
file '/path/to/input2.ogv'
file '/path/to/input3.ogv'

Notez que cela peut être un chemin de fichier relatif ou absolu. Si vos fichiers sont tous dans le même répertoire et nommés selon un modèle similaire à input1.ogv, input2.ogv ... , vous pouvez utiliser une boucle for pour générer inputs.txt:

rm inputs.txt; for f in input*.ogv; do echo "$f" >> inputs.txt; done

Une fois que vous avez créé votre fichier, vous pouvez concaténer sans perte les fichiers ogv comme ceci:

ffmpeg -f concat -i inputs.txt -c copy output.ogv
evilsoup
la source
Heh, j'ai trouvé cette réponse juste après avoir compris cela par moi-même .. La solution oggCat n'a pas fonctionné pour moi en raison d'erreurs étranges. Cela a bien fonctionné ..
Jindra Helcl
1

Avez-vous essayé d'utiliser PiTiVi ? Placez les trois clips de manière séquentielle sur la timeline, puis enregistrez le résultat dans un seul fichier.

Shane Wealti
la source
Oui mais ce n'est pas en ligne de commande. Je ne peux pas automatiser cela à l'aide d'un script si j'utilise PiTiVi.
Noufal Ibrahim
1
J'ai mentionné le point dans ma question maintenant.
Noufal Ibrahim
1

http://www.xiph.org/oggz/ a une fonctionnalité,

  • fusionner Fusionner les fichiers Ogg ensemble, entrelacer les pages dans l'ordre du temps de présentation.

Modifier: cela ne fait pas ce que vous voulez car vous voulez lire une vidéo après l'autre.


http://sox.sourceforge.net peut également fonctionner, la syntaxe ( http://sox.sourceforge.net/sox.html ):

 sox infile1 infile2 outfile

Modifier: cela ne gère que l'audio.


Vous pouvez essayer de compiler les oggvideotools et voir si oggCat fonctionne alors.

Edit: cela a fonctionné pour vous ...


Vous pouvez demander à http://sourceforge.net/projects/oggvideotools/support de résoudre les problèmes avec votre distribution, y compris le texte des messages d'erreur que vous avez lorsque vous 1) exécutez le binaire que vous obtenez à partir de vos référentiels de distribution 2) compilez 3) exécutez la version compilée.

Edit: vous recherchez des programmes alternatifs pour faire la concaténation.


Essayez d'utiliser mkvtoolnix pour concaténer des fichiers ogg en un seul mkv, puis extrayez-le à l'aide du même outil


la source
1
La fusion est différente de la concaténation et ne fait pas ce que je veux. sox est uniquement audio et ne gère pas les vidéos.
Noufal Ibrahim
1
Il " entrelace les pages par ordre de temps de présentation". Je veux concaténer. L'un devrait jouer après la fin de l'autre.
Noufal Ibrahim
1
Comme c'est la seule réponse, je suppose que Stack Exchange lui accordera la prime même s'il ne répond pas du tout à la question.
Noufal Ibrahim
1
Je peux obtenir l'un de ces outils "corrigé" en demandant sur les listes de diffusion respectives, des trackers de problèmes. Je cherche des alternatives à celles que j'ai spécifiées.
Noufal Ibrahim
1
J'essaierai mkvtoolnix bien que je préfère quelque chose comme oggCatqui fonctionne réellement. J'ai cependant renoncé à l'ogg. Beaucoup de gens ne semblent pas y jouer. Je suis passé à webm et à un repli flv.
Noufal Ibrahim