Tengo archivos codificados H.265 que requieren tantos recursos que no funcionan bien y mi software de conversión (mencoder) (actualmente) no es compatible con el formato H.265. ¿Puedo convertirlos a H.264 en un archivo por lotes de línea de comandos para convertir rápidamente los archivos para volver a comprimirlos usando Devede / OGMrip? Al buscar en este sitio no lo he encontrado discutido, así que publicaré lo que considero que es una pregunta útil y responderé a la pregunta.
fuente
sleep 3
es innecesario (pero posible útil para terminar el ciclo), y noINPUT=$1
tiene sentido ya que lo está ejecutando directamente en un shell interactivo.-c:a copy
lugar de volver a codificar. Además, es0:0
posible que no siempre se refiera al video y0:1
no siempre al audio. Puede usar un especificador de transmisión para evitar posibles problemas:-map 0:v -map 0:a
si desea todas las transmisiones de video y audio de la entrada 0, o-map 0:v:0 -map 0:a:0
si solo desea las primeras transmisiones de video y audio de la entrada 0. Si solo desea la transmisión de audio en inglés:-map 0:m:language:eng
(suponiendo que está etiquetado).ffmpeg -i $INPUT -vcodec h264 -acodec copy $OUTPUT
. Algo que uso todos los días y que realmente puedo memorizar en lugar de ese aluvión de banderas sin sentido por el que cada respuesta ffmpeg es tan infame.Conversión por lotes de H.265 a H.264
Estos ejemplos fueron escritos para recientes
ffmpeg
. Ahórrese algunos problemas y descargue una versión reciente. Luego ponga elffmpeg
binario~/bin
o/usr/local/bin
(puede que tenga que cerrar la sesión y luego iniciar sesión para que se note).Salida de Matroska
Este ejemplo se enviará a un directorio llamado
h264vids
.Este ejemplo supone que sus entradas son
.mp4
. Si no, cambie la.mp4
instancia en el ejemplo a su tipo de archivo de entrada, o simplemente use el codicioso*
por sí mismo.Ajuste
-crf
por calidad y-preset
por velocidad / eficiencia de codificación. O simplemente elimine estas opciones y use los valores predeterminados que son bastante buenos y deberían ser suficientes para la mayoría (el ejemplo es usar los valores predeterminados para estas opciones). Consulte FFmpeg Wiki: H.264 para obtener más información sobre estas opciones.Salida MP4
Este es un poco más complicado. Esto realizará una codificación condicional dependiendo de si el audio de entrada es AAC o no. Si el audio de entrada es AAC, el audio se copiará en secuencia (re-muxed) como está y se evitará una nueva codificación innecesaria. Si el audio de entrada no es AAC, se volverá a codificar en AAC.
Aquí hay un script simple que muestra cómo hacer esto usando
ffprobe
yffmpeg
. Cópielo y guárdelo en el directorio que contiene sus videos para convertir, dele permiso de ejecuciónchmod +x yourscriptname
y luego ejecútelo./yourscriptname
.Este ejemplo se enviará a un directorio llamado
h264vids
.Este ejemplo supone que sus entradas son
.mkv
. Si no, cambie la.mkv
instancia en el ejemplo a su tipo de archivo de entrada, o simplemente use el codicioso*
por sí mismo.Consulte la nota anterior sobre
-crf
y-preset
.Puede pausar la codificación con ctrl+ zy reanudar con
fg
.fuente
Teniendo en cuenta las respuestas anteriores, se me ocurrió lo siguiente:
Esto supone que los archivos siempre tienen un nombre que termina en
265.mkv
. Este final será reemplazado por264.mkv
.Si su nombre de archivo es diferente, debe adaptar el comando en consecuencia.
fuente