Impostazioni del freno a mano per convertire MKV in MP4 mantenendo la qualità originale


44

Ho un sacco di file MKV che devo convertire in MP4 e il mio software scelto è Handbrake.

Sono bloccato su quali impostazioni sarebbero le migliori per la conversione. Voglio mantenere la massima qualità. Devo solo convertire con le impostazioni originali e non cambiare nulla o c'è qualcosa di specifico che devo cambiare?


Ecco una guida abbastanza dettagliata sulle impostazioni del freno a mano mattgadient.com/2013/06/12/…
Janot

visualizzo un errore su alcuni file (da mkv a mp4 e da mp4 a mkv): il file di output n. 0 non contiene alcun flusso. Qualcuno ha idea di cosa significhi?
PrimitiveNom

Risposte:


86

Qual è il problema con il freno a mano?

Quando si utilizza il freno a mano per convertire da un formato contenitore all'altro (ad esempio MKV in MP4 nel proprio caso), il freno a mano ricodificherà il video. Vedi anche la rispettiva richiesta di funzionalità che avrebbe abilitato il passthrough video:

Spiacenti, non è prevista l'aggiunta di passthrough video. HandBrake è progettato per essere un transcoder video. Non è stato progettato per consentire il passthrough.

Quindi, ogni volta che cambi container con Handbrake, il tuo video verrà ricodificato, il che significa che a) richiede tempo eb) può introdurre una perdita di qualità.

Devo ricodificare? Non potrei semplicemente scambiare il contenitore?

Dal momento che il passthrough non è possibile, chiediti: devo ricodificare? Se vuoi solo cambiare il contenitore da MKV a MP4, di solito non hai bisogno di codificare nulla , devi solo cambiare il "wrapping" attorno al video. Questo non perde qualità e sarà un processo molto più veloce.

Puoi scambiare facilmente i contenitori con FFmpeg : devi solo dirgli di copiare i flussi video e audio:

ffmpeg -i input.mkv -c copy -map 0 output.mp4

Esistono anche strumenti come MP4Box che possono anche creare contenitori MP4 - lo stesso vale per MKV con MKVtoolnix .

Tuttavia, c'è un grande avvertimento: funziona solo se i codec audio e video sono supportati nel contenitore di destinazione (MP4), come nel caso di H.264 / H.265 e AAC, ad esempio, ma non per molti altri. Inoltre, il supporto del formato dei sottotitoli per MP4 è diverso da MKV e in realtà abbastanza limitato, quindi questo comando potrebbe non riuscire.

Se questo comando non funziona e se l'input utilizza codecs errati per il contenitore di output, probabilmente dovrai ricodificare . In questo caso, i codec verranno adattati al contenitore di output.

Per capire perché questo è necessario, è importante imparare la differenza tra codec video e container . Questo ti aiuterà a capire perché il cambio dei contenitori funziona e perché i contenitori MP4 e MKV hanno poco a che fare con i codec video, in realtà.

Perché la ricodifica non è buona, comunque?

Di solito non è possibile mantenere la qualità completa durante la codifica di un video che è già stato codificato. Questo perché l'originale è già stato compresso gettando via le informazioni e facendolo di nuovo si sta introducendo la perdita di generazione .

Spesso, vuoi ricodificare il video quando, ad esempio, cambiano le sue dimensioni, oppure hai bisogno di un bit rate specifico per comprimere il tuo flusso video o il tuo video originale usa un codec che non puoi riprodurre per nessun motivo.

Quindi, se carichi il tuo video MKV nel freno a mano e lo ricodifichi con x264, il freno a mano dell'encoder H.264 lo usa, lo memorizzi in un contenitore MP4, perderai la qualità in ogni caso, a meno che tu non imposti il ​​bitrate o fattore di qualità così alto che non vedrai (davvero) la differenza. Ma poi, anche le dimensioni del file saranno più grandi.

Nel caso ideale, convertiresti il ​​video in un video non compresso, che non ti perderà alcuna qualità, ma ti darà file di una dozzina di Gigabyte di dimensioni, anche per pochi minuti di materiale video.

Va bene, ma devo davvero ricodificare!

Se devi davvero ricodificare, assicurati di non impostare un bitrate medio, ma scegli un fattore di frequenza costante , che è qualcosa come "qualità costante". Proprio come il "bit rate variabile" per MP3: farà in modo di spendere i bit sulle parti video che ne hanno bisogno e migliorare la qualità generale - alla stessa dimensione del file.

I valori sani di CRF sono compresi tra 19 e 24, dove inferiore significa "migliore". Quindi, potresti provare con un fattore di frequenza di 19. Inoltre, assicurati di impostare il profilo "Alto", che consente all'encoder di utilizzare tutte le campane e fischietti e ottimizzare la qualità per un determinato bit rate.


Grazie! Sembra che tu sia l'unico a cui sembra interessare questa domanda e che mi aiuti, ho seguito i tuoi consigli e sembra che la qualità sia la stessa dell'originale! :)
arancione,

Per alcuni file mkv questo non funzionerà con (Impossibile scrivere l'intestazione per il file di output ... codec errato). Usa ffprobe -i file.mkv per vedere in quale formato è in formato a / v, probabilmente dovrai ricodificare con video x264 e audio aac / ac3
ski_squaw

Sei sicuro al 100% che il riavvolgimento dei file non causa perdita di qualità ??
PrimitiveNom

1
@BallpointBen Non possibile, no: github.com/HandBrake/HandBrake/issues/…
slhck

1
@Hashim Ho provato a chiarire il post come richiesto. E per quanto riguarda la tua domanda, poiché il freno a mano non consente il passthrough, la conversione da MP4 a MKV comporterà una perdita di qualità. E ci vorrà molto tempo. Fallo ffmpeg -i input.mp4 -c copy output.mkve dovresti stare bene.
Slhck

4

Questo funziona molto bene per me. Di seguito è riportato il codice per convertire tutti i file .mkv in .mp4 in Windows.

  • Potrebbe essere necessario aggiungere ffmpeg al tuo percorso. puoi semplicemente inserire il percorso completo dell'eseguibile ffmpeg, D: \ apps \ ffmpeg \ bin \ ffmpeg.exe
  • Scarica ffmpeg per Windows qui.
  • Utilizzo: rilascia un file .mkv su di esso. Farà l'intera directory.

Salvare in un file chiamato convert.bat.

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

Funziona come un fascino.
Kit Johnson

L'ho messo nella cartella con ffmpeg.exe e poi l'ho cambiato infor %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
davidtbernal
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.