Converti MKV con audio DTS in video MP4 con audio AAC o AC3


13

Ho un film da 4,3 GB a 720p e voglio convertire questo MKV con audio DTS in video MP4 con audio AAC o AC3.

A volte ricevo:

ffmpeg: unrecognized option '-c:v'

…e:

aac unrecognized

¬ e altre cose simili.

Voglio che questo film abbia dimensioni ridotte come quelle dei siti torrent.


Puoi aiutarci per favore e darci il comando esatto che stai usando e l'output completo e non tagliato che produce FFmpeg? Su quale sistema operativo sei? E infine: Do si deve utilizzare FFmpeg? Si prega di modificare la tua domanda.
slhck,

Risposte:


19

Assicurati di eseguire l'ultima versione di FFmpeg . Per Windows e Linux, sono disponibili build statiche dalla homepage. Per macOS, puoi installare FFmpeg tramite Homebrew .

Quindi, nel caso più semplice eseguire:

ffmpeg -i input.mkv -c:v libx264 -c:a aac out.mp4

Impostazione della qualità video

Per controllare la qualità video, impostare il crfparametro , il cui valore predefinito è 23. Inferiore significa qualità migliore, ma dimensioni del file più elevate. Prova i valori tra 19 e 26 per vedere cosa si adatta meglio. È inoltre possibile impostare una determinata velocità in bit, a seconda della dimensione del file desiderata. Qui, ad esempio, 500 kBit / s:

ffmpeg -i input.mkv -c:v libx264 -crf 23 …
ffmpeg -i input.mkv -c:v libx264 -b:v 500k …

Per l'audio, puoi anche impostare la velocità in bit, con -b:a.

Audio a più canali

Se il flusso audio utilizza più canali (ad es. Audio 5.1), è necessario utilizzare un altro codificatore AAC ( libfdk_aac). Questo codificatore non è disponibile nelle build statiche, ma può essere ottenuto con le versioni preconfezionate / Homebrew di ffmpeg.

ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a libfdk_aac -b:a 384k out.mp4

Copia di tutti i flussi

Nel caso in cui il tuo file di input abbia più di un flusso di video, audio e sottotitoli, ffmpeg di default non li converte tutti.

Utilizzare -map 0per indicare a ffmpeg di prendere tutti i flussi dal file di input (consultare il Wiki FFmpeg per maggiori informazioni). Ciò è utile per conservare lingue e sottotitoli diversi che potrebbero essere presenti nell'originale.

ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4

2

MKV è solo un contenitore. Puoi avere un video MPEG-4 all'interno di un .mkvcontenitore.

Il mio suggerimento è questo:

Invia il file in un .mkvcontenitore:

mkvmerge -o newfile.mkv inputfile.m4v

Ottieni lo mkvdts2ac3.shscript disponibile qui ed esegui questo comando:

mkvdts2ac3.sh newfile.mkv

Fatto!

La mia TV supporta AC3, ma non DTS, quindi questa configurazione fa miracoli per me.

Si noti che mkvdts2ac3.shha alcuni requisiti di dipendenza molto basilari. Li vedrai quando esegui lo script.


root @ Frenzen: ~ / Downloads / 2.Days.In.New.York.2012.720p.BluRay.X264- 7SinS # mkvmerge -o 7s-2days-in-ny-720p.mkv inputfile.m4v mkvmerge v3.0.0 (' Riaggancia i tuoi Hang-Ups ') costruito il 29 dic 2009 00:24:14 Errore: impossibile aprire correttamente il file di origine' inputfile.m4v 'o recuperarne le dimensioni cercando fino alla fine. root @ Frenzen: ~ / Downloads / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS #
dale

Sembra un file di input corrotto.
UtahJarhead,

@dale Potresti includere l'output che ti ho chiesto nel commento sulla tua domanda originale? Ciò ci aiuterebbe a risolvere il tuo problema.
slhck,

Inoltre, UtahJarhead, l'OP sembra voler un file di risultato MP4 da un file di input MKV. Non ha un m4vfile ed è per questo che il tuo comando non funziona. Inoltre, Dale ha usato la sintassi sbagliata, specificando il suo file esistente come output e dando inputfile.m4vcome input, che ovviamente non esiste.
slhck,

mp4 è un codec, non un contenitore. mkv è un contenitore, non un codec. È come dire che vogliono costruire un garage da una Cadillac. Quale codec è il file di input .mkv perché ciò potrebbe fare la differenza.
UtahJarhead,

1

Puoi farlo:

ffmpeg -i input.mkv -c:v copy -c:a libfaac out.mp4

O se non c'è gioia, prova a correggere il bitstream interno

Conversione in stereo e asc:

ffmpeg -i input.mkv -c:v copy -c:a libfaac    \
-bsf:a aac_adtstoasc -ac 2 -ar 48000 -ab 256k \
out.mkv

Se è 5.1, surround e le voci sono difficili da ascoltare, è perché la finestra di dialogo si trova sul canale centrale e si sente solo l'off-mike dai canali R & L, ma la musica e gli effetti sonori stanno esplodendo.

È possibile compensare ciò con il filtro dolby-II per ridurre il canale surround e dividere il canale centrale in stereo e combinarli tutti in canali stereo destro e sinistro.

ffmpeg -i input.mkv -c:v copy -c:a libfaac -bsf:a aac_adtstoasc   \
  -af aresample=matrix_encoding=dplii -ac 2 -ar 48000 -ab 256k    \
  out.mkv

0

Come ha detto @UtahJarhead , MKV è il contenitore. Fondamentalmente, quello che vuoi è convertire l'audio DTS in AC3 o AAC.

Il modo migliore per farlo è usare FFmpeg per l'audio e MKVToolNix per unire audio e video.

Se preferisci una GUI invece dei comandi, ho descritto come fare qui: Converti l'audio non supportato dal video .


1
Dovresti descrivere il processo qui, quindi e solo allora, fornire il link per il download all'applicazione.
Ramhound,

@Ramhound Ho appena modificato la risposta
IvanRF
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.