Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/11/2016, à 12:45

Slyfox

FFmpeg demande explication de "bufsize"

Bonjour,

J’utilise FFmpeg pour convertir mes vidéos et voici une ligne de commande:

ffmpeg -i input.mkv -c:v libx264 -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.mkv

Je ne comprends pas vraiment à quoi sert l'option "bufsize" dans cet exemple ?

Merci d'éclairer ma lanterne. smile

Dernière modification par Slyfox (Le 09/11/2016, à 12:46)

Hors ligne

#2 Le 13/11/2016, à 07:03

moko138

Re : FFmpeg demande explication de "bufsize"

Un réflexe à acquérir : le man.

man ffmpeg

voire

man ffmpeg | grep bufsize

Et comme un long man est plus facile à consulter en mode graphique :

man ffmpeg > man_ffmpeg.txt

donne le man dans un fichier .txt, confortable !


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#3 Le 13/11/2016, à 18:15

Slyfox

Re : FFmpeg demande explication de "bufsize"

Salut moko138

Merci de me répondre.

Voici ce que dit le man traduit  (que j'avais déjà consulté avant de poser ma question).

Traduction française

-bufsize 
Définit la taille du tampon du vérificateur tampon vidéo (en bits).

Lien du man de ffmpeg: https://linux.die.net/man/1/ffmpeg

Me voilà bien avancé, je ne comprends pas en quoi ce tampon à comme utilité ?

Dernière modification par Slyfox (Le 13/11/2016, à 22:07)

Hors ligne

#4 Le 14/11/2016, à 07:40

moko138

Re : FFmpeg demande explication de "bufsize"

...du vérificateur de tampon vidéo...

Merci pour le lien vers le man.

En effet le man n'est pas très clair sur ce point. Toutefois,
  Si tu descends à -target <type>,  il est dit que, si on a spécifié le type de fichier cible, ffmpeg fixe automatiquement les tailles de tampon ("buffer sizes"),
et qu'on peut néanmoins spécifier des options additionnelles, pour autant qu'elles n'entrent pas en conflit avec le "standard". Ce qui implique que ffmpeg incorpore un standard.

Et si tu remontes quelques lignes au-dessus de -bufsize, il est dit (dit, mais non expliqué) que fixer bufsize à <size>
* est nécessaire
     - pour fixer un plafond au bitrate,
     - et donc pour obtenir un bitrate constant (CBR) ;
* est de peu d'utilité dans les autres cas.

En l'absence d'explications complémentaires, il te reste à faire des essais avec des valeurs différentes pour en mesurer l'effet sur la vitesse d'encodage et - peut-être - sur la qualité du résultat.

Mais peut-être qu'un cador nous éclairera ! D'avance, merci à lui/elle !  smile

Dernière modification par moko138 (Le 14/11/2016, à 07:42)


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#5 Le 14/11/2016, à 21:10

Slyfox

Re : FFmpeg demande explication de "bufsize"

Merci d'avoir pris la peine de me répondre, effectivement maintenant j'y vois déjà un peu plus claire suite aux info que tu donnes ci-dessus.

moko138 a écrit :

En l'absence d'explications complémentaires, il te reste à faire des essais avec des valeurs différentes pour en mesurer l'effet sur la vitesse d'encodage et - peut-être - sur la qualité du résultat.

Voici un test que j'ai fait:

Vidéo originale (sans audio pour pas influencer le résultat du test): Débit de 1683 kb/s

Duration: 00:22:57.86, start: 3.742000, bitrate: 1683 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 720x544, SAR 1:1 DAR 45:34, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)

Maintenant j'aimerais faire une vidéo de 1000 kb/s avec l’option bufsize à 2000k (2x le débit, 1000 x 2= 2000)


Voici la ligne de commande  -bufsize 2000k:

ffmpeg -i noaudio.mkv -c:v libx264 -b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 2000k -c:a copy outvideo.mkv

j’obtiens une vidéo avec un débit de 909 kb/s:



Voici la ligne de commande  -bufsize 1000k:

ffmpeg -i noaudio.mkv -c:v libx264 -b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 1000k -c:a copy outvideo.mkv

j’obtiens une vidéo avec un débit de 844 kb/s:



Même test mais sans l'option "bufsize", voici la ligne de commande:

ffmpeg -i invideo.mkv -c:v libx264 -b:v 1000k -minrate 1000k -maxrate 1000k outvideo.mkv

J’obtiens une vidéo avec un débit de : 989 kb/s


Conclusion il semble que je me reproche plus du débit demandé (1000 kb/s) sans l'option "bufsize".

EDIT

J'ai refait le test avec l'option -bufsize 2000k mais en 2 pass:

ffmpeg -i noaudio.mkv -c:v libx264 -b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 2000k -pass 1 -f mp4 /dev/null
ffmpeg -i noaudio.mkv -c:v libx264 -b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 2000k -pass 2 out.mkv

Et j'obtiens un débit de 966 kb/s, donc proche du résultat des 1000kb/s.

Dernière modification par Slyfox (Le 14/11/2016, à 21:18)

Hors ligne