web-dev-qa-db-fra.com

ffmpeg convertir sans perte de qualité

J'ai besoin de convertir toutes les vidéos sur mon lecteur vidéo (sur le site Web) lorsque le type de fichier est autre que flv/mp4/webm.

Quand j'utilise: ffmpeg -i filename.mkv -sameq -ar 22050 filename.mp4:

Erreur [h264 @ 0x645ee0] lors du décodage de MB 22 1, flux bytest (8786)

Ce que je veux dire, c’est ce que je devrais faire lorsque j’ai besoin de convertir le type de fichier: .mkv et autres (non pris en charge par jwplayer) en flv/mp4 sans perte de qualité.

6
Jensej

Au lieu de -sameq (supprimé par FFMpeg), utilisez -qscale 0: la taille du fichier augmentera mais la qualité sera préservée.

0
A. Attia

Ne pas utiliser -sameq, cela ne signifie pas "qualité identique"

Cette option a été supprimée de FFmpeg il y a longtemps. Cela signifie que vous utilisez une version obsolète.

Utilisez plutôt l'option -crf lors du codage avec libx264. Il s'agit de l'encodeur vidéo H.264 utilisé par ffmepg et, s'il est disponible, de l'encodeur par défaut pour la sortie MP4. Voir le Guide d'encodage vidéo FFmpeg H.264 pour plus d'informations à ce sujet.

Obtenir une ffmpeg récente

Accédez à la page FFmpeg Download et obtenez-en une construction. Il existe des options pour Linux, OS X et Windows. Ou vous pouvez suivre l’un des FFmpeg Compile Guides . Le développement de FFmpeg étant si actif, il est toujours recommandé d'utiliser la version la plus récente et la plus pratique à utiliser.

Vous allez devoir accepter une perte de qualité

Vous pouvez produire une sortie sans perte avec libx264, mais cela créera probablement des fichiers absolument volumineux et risque de ne pas être décodable par le navigateur et/ou d'être pris en charge par JW Player (je n'ai jamais essayé).

La bonne nouvelle est que vous pouvez créer une vidéo pratiquement sans perte visuelle. Encore une fois, les fichiers peuvent être un peu volumineux, mais vous devez choisir entre la qualité et la taille du fichier.

Avec -crf, choisissez une valeur comprise entre 18 et environ 29. Choisissez le nombre le plus élevé qui donne toujours une qualité acceptable. Utilisez cette valeur pour vos vidéos.

Autres choses

  • Ajoutez -movflags +faststart. Cela déplacera l'atome de Moov de la fin du fichier au début. Cela permettra à la vidéo de commencer la lecture pendant le téléchargement. Sinon, toute la vidéo doit être complètement téléchargée avant de pouvoir commencer à jouer.

  • Ajoutez -pix_fmt yuv420p. Cela garantira un sous-échantillonnage de chrominance compatible pour tous les acteurs. Sinon, ffmpeg, par défaut et en fonction de plusieurs facteurs, tentera de minimiser ou d'éviter le sous-échantillonnage de la chrominance et le résultat ne sera souvent pas reproductible par les joueurs n'ayant pas FFmpeg.

15
llogan

convertir tous les mkv en mp4 sans perte de qualité (en fait, il s’agit seulement de réemballer):

for %a in ("*.mkv") do ffmpeg.exe -i "%a" -vcodec copy -acodec copy -scodec mov_text "%~na.mp4"
5
emetrue