Follow

Question aux maîtres es ffmpeg…
J’ai une vidéo d’intro générée à partir d’une image + /dev/zero pour le son.
J’ai le reste de ma vidéo dans un autre fichier.
Le problème quand je concatène les 2 bouts, c’est que j’ai l’impression que le son se retrouve décalé, comme si la piste audio de l’intro était plus courte que celle vidéo, et que ffmpeg piquait celle du contenu trop tôt…
Ça parle à quelqu’un ? Comment fixer ? 🤔

@aeris perso pour coller/couper etc j'utilise avidemux, y'a un réglage de décalage de son dedans...

@aeris bavoui je sais mais (quelquefois) le temps passé à automatiser l'automatisation peut être supérieur au travail con et ingras de "faire à la mimine"...
déjà vécu...

@usul @devnull @aeris @alex

ben oui, parce que la vidéo et le son sont paquetisés (empaquetés ?) séparément et avec des multiples d'une certaine longueur.

Y a des options pour jouer là dessus mais ça fait un moment que j'ai pas utilisé.

@mmu_man @usul @devnull @alex De là à générer 2s de latence sur le son de la 2nde vidéo ? 🤔

@aeris @usul @devnull @alex ça dépend de la fréquence d'échantillonnage entre autres.
Peut-être aussi qu'il lit trop de son…

Tu peux tenter de couper proprement le 1er morceau avec ffmpeg -d pour le forcer à tronquer…

@devnull @aeris La concaténation de fichiers avec ffmpeg, c'est malheureusement un truc que je ne maitrise pas du tout :/

@aeris
Alors, je ne maîtrise pas ffmpeg mais voici une option qui fonctionne chez moi :
\ffmpeg.exe -i "title.mp4" -i "content.mp4" -filter_complex "[0:v:0]scale=1920:1080,setsar=1/1[intro];[intro][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outvid][outaud]" -map "[outvid]" -map "[outaud]" essai.mp4

J'ai du jouer avec le scaling car l'image fait 1980*1080.

@aeris

Concat c'est la merde a utiliser. Il faut que tes 2 sources aient des formats identiques.

Ton problème ici, c'est que ta video titre est en 25 fps constant, alors que la vidéo de ta conf est en fps variable.

Voir avec Mediainfo, dispo dans toute bonne distrib.

Dans ce cas précis, il faut que tu repasses ta vidéo de conf en 25 fps. Et ensuite tu pourras la concaténer avec la video titre. Je ne pense pas que tu puisses le faire sans réencoder

ffmpeg -i "video.mp4" -framerate 25 -c:v …

@Nel Non, le problème est que j’ai un offset sur la piste audio… Les différences de fps sont totalement non notables sur 5 secondes…

@aeris

j'ai refait la conversion pour vérifier et c'est passé nickel. Tout est synchro.

@Nel Si tu réencodes, les offset start_time repassent à 0, donc oui tu obtiens le bon truc à la fin

@aeris
Attends, le problème est sur ta vidéo de conf, pas sur celle de titre.

Frame rate mode : Variable
Frame rate : 24.898 FPS
Minimum frame rate : 8.333 FPS
Maximum frame rate : 25.000 FPS
Original frame rate : 25.000 FPS

Et y'a un gros lag dès le départ de la vidéo, d'où le décalage de 2sec très visible dès le début.

@Nel Le problème est que le son arrive trop tôt. Pas trop tard…

@Nel Le son arrive sur la piste d’intro. Il est en avance de environ 1s. Ce qui correspond plus ou moins à l’offset de 0.941 du start_time d’une des pistes du contenu.

@aeris
Je comprends bien, mais là on parle de concat : quand les formats de video ne sont pas identiques, il fait un peu ce qu'il veut.

@Nel J’peux pas plutôt regénérer l’intro en variable du coup ?

@aeris
Houla, je ne me suis jamais aventuré dans le fps variable. Je ne sais même pas avec quoi tu as pu le générer.

@Nel Je ne veux pas savoir moi-même… On galère tellement avec ces fucking rush supposés avoir été fait par des pros…

@aeris
Si tu as les originaux tu peux les convertir dans le format final, faire ton titre dans le même format, et ensuite faire un concat avec "c:v copy c:a copy" ça fonctionnera aussi bien

@Nel Le blem c’est que je voudrais éviter un réencodage… C’est jamais bon le double encodage avec perte…

@aeris

J'ai juste téléchargé les 3 petites videos sur ton lien

data.passageenseine.org/2019/t

Si la conf complète c'est du 6000 kb/s comme l'extrait d'une min, je pense que tu peux considérer que c'est du sans perte. C'est énorme pour une vidéo statique comme une conférence, même pour du 1080p.

@Nel Et je ne veux pas trop réencoder non plus parce que peertube va s’en faire une passe derrière de toute façon.

@aeris

Tu sais la perte de réencodage n'est pas énorme non plus. Sur des vidéos comme les conférences, on y verra absolument aucune différence : les plans sont statiques et les scènes suffisamment définies. Surtout si c'est pour le mettre sur peertube derrière.

J'avais fait quelques essais il y a quelques années avec différents CRF + les bitrates associés. Il y a vraiment quand on compare image par image en cote à cote qu'on arrive à voir les différences.

forum.ubuntu-fr.org/viewtopic.

@aeris

C'est bizarre, ton framerate est constant sur ta capture.

Par contre les 2 extraits "codeur-se-s_tous_pays_unissez_vous-content.mp4" et "codeur-se-s_tous_pays_unissez_vous-all.mp4", on a bien des framerate variables.

Sign in to participate in the conversation
Mastodon

PARCE QUE C’EST MON INSTANCE !