Comment puis-je ré-encoder une vidéo H.264 avec une perte de qualité minimale?

20

J'ai beaucoup de fichiers MPEG-TS (conteneur .TS mais vidéo H.264) et la lecture est correcte, sauf que lorsque vous sautez en avant / en arrière ou en avance rapide, c'est très lent et pixelisé, etc.

J'ai essayé de faire des recherches et je suppose qu'ils encodaient avec très peu de blocs de référence (c'est-à-dire qu'il s'agit d'une capture à partir d'un flux satellite DVB-S).

Lorsque je les réencode avec Handbrake (conteneur .MP4), ils jouent très, très bien et la recherche dans la vidéo est instantanée, etc., etc.

Est-il possible de transcoder / ré-encoder mes fichiers MPEG-TS avec une perte de qualité minimale? Si oui, quel est mon meilleur pari? Ils sont chacun d'environ 2 Mbps (soit 2 Go par heure) mais je ne veux pas les ré-encoder si une "perte de qualité minimale" nécessite 10+ Go par fichier. J'espère garder la vidéo de la même taille.

Quelqu'un peut-il me donner des conseils?

SofaKng
la source
4
Avez-vous essayé de simplement les remuxer dans un fichier MKV ou MP4 pour voir si cela aide? Voir les réponses à: Comment convertir et réparer des MPEG-TS (captures DVB-S) pour une meilleure lecture?
afrazier

Réponses:

23

C'est peut-être un problème de conteneur, le copier dans un nouveau format de conteneur avec

avconv -i input.ts -c copy output.mp4

pourrait bien résoudre votre problème. Ce sera 100% sans perte. Si cela ne fonctionne pas, un crf de 18 est normalement considéré comme «visuellement sans perte»; vous pouvez définir ceci est HandBrake (sous l'onglet «vidéo»), ou avec avconv:

avconv -i input.ts -c:a copy -c:v libx264 -crf 18 -preset veryfast output.mp4

Les préréglages sont: ultra-rapide, ultra-rapide, très rapide, plus rapide, rapide, moyen, plus lent, lent, très lent. Plus le préréglage est lent, plus le fichier est petit (mais avec une augmentation du temps d'encodage). Dans mon expérimentation personnelle, j'ai trouvé que la plus grande baisse en termes de taille de fichier se situe entre ultra-rapide et très rapide, après quoi elle semble être beaucoup plus incrémentielle.

REMARQUE: si vous le souhaitez, ffmpeg peut faire tout ce que peut faire avconv, avec une syntaxe identique (remplacez simplement toutes les instances d'avconv par ffmpeg).

NOTE DE BAS DE PAGE: Vous pouvez trouver ce guide d'encodage ffmpeg x264 utile pour plus d'informations.

evilsoup
la source
8

Sans entrer dans les détails de l'encodage vidéo: il n'y a pas de "perte de qualité minimale" lorsque votre contrainte est un codec vidéo spécifique (h.264) ou un certain débit binaire. Un facteur limitant sera toujours là - s'il y avait un moyen de conserver encore plus de qualité, ce serait le Saint Graal de l'encodage vidéo, pour ainsi dire.

Un encodeur comme le x264 ne peut pas faire mieux - votre bouton principal de "contrôle" sera le paramètre Constant Rate Factor, qui agit en quelque sorte comme un facteur de "qualité constante". En dehors de cela, il y a des limitations techniques sur la quantité de débit pouvant être sauvegardée tout en recodant et en conservant la même qualité visuelle / expérimentée avec un codeur spécifique.

Bien sûr, vous obtiendrez des résultats différents pour, disons, XviD (un simple encodeur MPEG 4 Part II) et x264, l'encodeur h.264 le plus avancé aujourd'hui. Et vous pouvez également essayer d'acheter l'encodeur Mainconcept h.264 et voir si son utilisation entraîne une meilleure qualité au même débit binaire moyen.

Dans l'encodage vidéo, vous devrez quand même exécuter quelques essais, car cela dépend également du matériel source. Un match de football sera plus difficile à encoder qu'une partie de Snooker. Il existe certaines options dans x264 qui permettent le réglage pour certains types, par exemple les films, avec l' -tune filmoption dans FFmpeg, par exemple, mais la différence pourrait être minime.

Pour des exemples et plus d'informations, voir FFmpeg: L'ultime outil de manipulation vidéo et audio .

slhck
la source
1

Pour mes rayons blu Si j'encode des fichiers MPEG-TS, j'utilise un frein à main haut profil et j'utilise l'onglet avancé avec ces paramètres: RF 20

b-adapt=2:rc-lookahead=60:bframes=8:direct=auto:trellis=2:ref=16:subq=10:me=umh:merange=24:analyse=all

Il faut du temps pour encoder mais la qualité est difficile à distinguer d'un blu ray.

Si votre objectif est de la même taille, cela ne se produira pas car il s'agit d'un codec / compression différent. La taille et la qualité des fichiers ne sont pas la même chose.

davefromcamp
la source