Concaténez des vidéos .mp4 de différents paramètres de codage à l'aide de avconv sans perte de qualité?

1

Comment utiliser l' avconvoutil pour concaténer plusieurs vidéos .mp4 de différents paramètres de codage dans un même conteneur, sans perte de qualité?

becko
la source
Vous ne pouvez le faire que si la vidéo en sortie est encodée sans perte. Est-ce acceptable? Quel est votre cas d'utilisation ici?
Slhck
@slhck Oui, la vidéo en sortie peut être encodée sans perte. Le cas d'utilisation est que j'ai différentes scènes d'un film dans des fichiers séparés, codés avec des paramètres différents. Je voudrais les concaténer dans un seul fichier de sortie, de manière à ce que chaque scène conserve sa qualité d'origine.
becko
related: superuser.com/a/522658/91054 , mais utilise ffmpeg, et certaines options ne sont pas reconnues paravconv
becko

Réponses:

1

Les commandes données ici ne fonctionneront pas si les vidéos ont des paramètres de codage différents. En fait, vous ne pouvez les concaténer qu'en les amenant d'abord aux mêmes paramètres, en travaillant dans le domaine décodé (pixel), puis en les stockant sans perte.

Par exemple, en harmonisant les dimensions de fréquence d'images et de fréquence vidéo, le taux d'échantillonnage audio et les canaux audio:

avconv -i input_1.mp4 -s 1920x1080 -r 25 -c:v ffv1 -c:a pcm_s16le -ac 2 -ar 44100 out_1.avi
avconv -i input_2.mp4 -s 1920x1080 -r 25 -c:v ffv1 -c:a pcm_s16le -ac 2 -ar 44100 out_2.avi
avconv -i "concat:out_1.mp4|out_1.mp4" -c copy output.avi

Cela utilise ffv1un codec sans perte, mais tout autre codec fonctionnerait correctement (par exemple, huffyuvdans un fichier AVI ou libx264avec -crf 0un MP4).

Si vous voulez à nouveau un "petit" fichier de sortie, vous n’avez pas d’autre choix que de compresser output.aviavec un encodeur avec perte.

slhck
la source