Convierta MKV con sonido DTS a video MP4 con audio AAC o AC3

13

Tengo una película de 4.3 GB 720p y quiero convertir este MKV con sonido DTS a video MP4 con audio AAC o AC3.

A veces me sale:

ffmpeg: unrecognized option '-c:v'

…y:

aac unrecognized

¬ y otras cosas similares.

Quiero que esta película tenga un tamaño pequeño como los que se encuentran en los sitios de torrents.

valle
fuente
¿Puede ayudarnos por favor y darnos el comando exacto que está utilizando y la salida completa y sin cortes que produce FFmpeg? ¿En qué sistema operativo estás? Y por último: ¿Es usted tiene que usar FFmpeg? Por favor edite su pregunta.
slhck

Respuestas:

19

Asegúrese de ejecutar la última versión de FFmpeg . Para Windows y Linux, las compilaciones estáticas están disponibles desde la página de inicio. Para macOS, puede instalar FFmpeg a través de Homebrew .

Luego, en el caso más simple, ejecute:

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

Establecer calidad de video

Para controlar la calidad del video, configure el crfparámetro , que por defecto es 23. Menor significa mejor calidad, pero mayor tamaño de archivo. Pruebe valores entre 19 y 26 para ver cuál se ajusta mejor. También puede establecer una determinada velocidad de bits, según el tamaño de archivo que desee. Aquí, por ejemplo, 500 kBit / s:

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

Para el audio, también puede establecer la velocidad de bits con -b:a.

Audio de múltiples canales

Si su transmisión de audio usa múltiples canales (por ejemplo, sonido 5.1), debe usar otro codificador AAC ( libfdk_aac). Este codificador no está disponible en las compilaciones estáticas, pero se puede obtener con las versiones preempaquetadas / Homebrew de ffmpeg.

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

Copiando todas las transmisiones

En caso de que su archivo de entrada tenga más de una transmisión de video, audio y subtítulos, ffmpeg por defecto no los convierte a todos.

Úselo -map 0para indicar a ffmpeg que tome todas las secuencias del archivo de entrada (consulte el Wiki de FFmpeg para obtener más información). Esto es útil para retener diferentes idiomas y subtítulos que pueden estar en el original.

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

MKV es solo un contenedor. Puede tener un video MPEG-4 dentro de un .mkvcontenedor.

Mi sugerencia es esta:

Empuje el archivo a un .mkvcontenedor:

mkvmerge -o newfile.mkv inputfile.m4v

Obtenga el mkvdts2ac3.shscript disponible aquí y ejecute este comando:

mkvdts2ac3.sh newfile.mkv

¡Hecho!

Mi televisor es compatible con AC3, pero no con DTS, por lo que esta configuración me hace maravillas.

Tenga en cuenta que mkvdts2ac3.shtiene algunos requisitos de dependencia que son muy básicos. Los verás cuando ejecutes el script.

UtahJarhead
fuente
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 (' Cuelgue sus Hang-Ups ') creado el 29 de diciembre de 2009 00:24:14 Error: El archivo fuente' inputfile.m4v 'no se pudo abrir correctamente, o recuperar su tamaño buscando hasta el final no funcionó. root @ Frenzen: ~ / Descargas / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS #
dale
Suena como un archivo de entrada corrupto.
UtahJarhead
@dale ¿Podría incluir el resultado que le pedí en el comentario sobre su pregunta original? Eso nos ayudaría a solucionar su problema.
slhck
Además, UtahJarhead, el OP parece querer un archivo de resultados MP4 de un archivo de entrada MKV. Él no tiene un m4varchivo, por lo que su comando no funciona. Además, Dale usó la sintaxis incorrecta, especificando su archivo existente como salida y dando inputfile.m4vcomo entrada, que obviamente no existe.
slhck
mp4 es un códec, no un contenedor. mkv es un contenedor, no un códec. Eso es como decir que quieren hacer un garaje con un Cadillac. Qué códec es el archivo .mkv de entrada porque eso puede marcar la diferencia.
UtahJarhead
1

Puedes hacer esto:

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

O si no hay alegría, intente arreglar el flujo de bits interno

Conversión a estéreo y asc:

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

Si es 5.1, surround y las voces son difíciles de escuchar es porque el cuadro de diálogo está en el canal central y solo está escuchando el micrófono de los canales R & L, pero la música y los efectos de sonido están en auge.

Puede compensar esto con el filtro dolby-II para reducir el canal envolvente y dividir el canal central en estéreo, y combinarlos en canales estéreo derecho e izquierdo.

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
Chris Reid
fuente
0

Como dijo @UtahJarhead , MKV es el contenedor. Básicamente, lo que quieres es convertir audio DTS a AC3 o AAC.

La mejor manera de hacerlo es usar FFmpeg para el audio y MKVToolNix para fusionar audio y video.

Si prefiere una GUI en lugar de comandos, describí cómo hacer esto aquí: Convertir audio no compatible de video .

IvanRF
fuente
1
Debe describir el proceso aquí, luego y solo entonces, proporcione el enlace de descarga a la aplicación.
Ramhound
@Ramhound Acabo de editar la respuesta
IvanRF