J'ai une tonne de fichiers MKV que j'ai besoin de convertir en MP4 et le logiciel que j'ai choisi est Handbrake.
Je suis coincé sur quels réglages seraient les meilleurs pour la conversion. Je veux conserver toute la qualité. Dois-je simplement convertir avec les paramètres d'origine sans rien changer ou dois-je modifier quelque chose en particulier?
Réponses:
Quel est le problème avec Handbrake?
Lorsque vous utilisez Handbrake pour convertir un format de conteneur en un autre (par exemple, MKV en MP4 dans votre cas), Handbrake ré-encodera la vidéo. Voir également la demande de fonctionnalité respective qui aurait activé la transmission vidéo:
Donc, chaque fois que vous changez de conteneur avec Handbrake, votre vidéo va être ré-encodée, ce qui signifie que a) prend du temps et b) peut entraîner une perte de qualité.
Dois-je ré-encoder? Ne pourrais-je pas simplement échanger le conteneur?
Puisque le relais n'est pas possible, demandez-vous: Dois-je ré-encoder? Si vous voulez seulement changer le conteneur de MKV en MP4, vous n'avez généralement pas besoin de coder , vous devez simplement changer le "wrapping" de la vidéo. Cela ne perd pas en qualité et le processus sera beaucoup plus rapide.
Vous pouvez facilement échanger des conteneurs avec FFmpeg - il vous suffit de lui dire de copier les flux vidéo et audio:
Il existe également des outils tels que MP4Box qui peuvent également créer des conteneurs MP4 - il en va de même pour MKV avec MKVtoolnix .
Toutefois, il y a un inconvénient majeur: cela ne fonctionne que si les codecs audio et vidéo sont pris en charge dans le conteneur cible (MP4), comme c'est le cas pour H.264 / H.265 et AAC, par exemple, mais pas pour beaucoup d'autres. De plus, la prise en charge du format de sous-titre pour MP4 est différente de MKV et est en fait assez restreinte. Cette commande peut donc échouer.
Si cette commande ne fonctionne pas et si votre entrée utilise les codecs incorrects pour le conteneur de sortie, vous devrez probablement ré-encoder . Dans ce cas, les codecs seront adaptés au conteneur de sortie.
Pour comprendre pourquoi cela est nécessaire, il est important de connaître la différence entre les codecs vidéo et les conteneurs . Cela vous aidera à comprendre pourquoi le changement de conteneurs fonctionne et pourquoi les conteneurs MP4 et MKV ont peu à voir avec les codecs vidéo.
Pourquoi est-ce que le réencodage est mauvais, de toute façon?
Vous ne pouvez (généralement) pas conserver une qualité optimale lors du codage d'une vidéo déjà codée. Cela est dû au fait que l'original a déjà été compressé en jetant des informations et qu'en le faisant à nouveau, vous introduisez une perte de génération .
Souvent, vous souhaitez réencoder la vidéo lorsque, par exemple, ses dimensions changent, ou si vous avez besoin d’un débit binaire spécifique pour compresser votre flux vidéo, ou si votre vidéo originale utilise un codec que vous ne pouvez pas lire pour une raison quelconque.
Ainsi, si vous chargez votre vidéo MKV dans Handbrake et que vous la réencodez avec x264, le codeur H.264 qu’elle utilise, stockez-la dans un conteneur MP4, vous perdrez de la qualité quel que soit le résultat, à moins que vous ne définissiez le débit facteur de qualité si élevé que vous ne verrez pas (vraiment) la différence. Mais dans ce cas, la taille du fichier sera également plus grande.
Dans l'idéal, convertissez la vidéo en une vidéo non compressée, ce qui ne vous fera perdre aucune qualité, mais vous fournira des fichiers d'une taille de 12 Go, même pour quelques minutes de matériel vidéo.
D'accord, mais je dois vraiment ré-encoder!
Si vous devez vraiment ré-encoder, veillez à ne pas définir un débit binaire moyen, mais choisissez un facteur de débit constant , qui s'apparente à "qualité constante". Tout comme "débit binaire variable" pour le format MP3: cela vous garantira de dépenser les bits sur les parties vidéo qui en ont besoin et d'améliorer la qualité globale - à la même taille de fichier.
Les valeurs de CRF de Sane vont de 19 à 24, où bas signifie "meilleur". Vous pouvez donc essayer avec un facteur de débit de 19. De même, veillez à définir le profil "Elevé", qui permet au codeur d’utiliser toutes les options possibles et d’optimiser la qualité pour un débit binaire donné.
la source
ffmpeg -i input.mp4 -c copy output.mkv
et ça devrait aller.Cela fonctionne très bien pour moi. Voici le code pour convertir tous les fichiers .mkv en fichiers .mp4 dans Windows.
Enregistrez dans un fichier appelé convert.bat.
la source
for %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"