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 3es innecesario (pero posible útil para terminar el ciclo), y noINPUT=$1tiene sentido ya que lo está ejecutando directamente en un shell interactivo.-c:a copylugar de volver a codificar. Además, es0:0posible que no siempre se refiera al video y0:1no siempre al audio. Puede usar un especificador de transmisión para evitar posibles problemas:-map 0:v -map 0:asi desea todas las transmisiones de video y audio de la entrada 0, o-map 0:v:0 -map 0:a:0si 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 elffmpegbinario~/bino/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.mp4instancia en el ejemplo a su tipo de archivo de entrada, o simplemente use el codicioso*por sí mismo.Ajuste
-crfpor calidad y-presetpor 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
ffprobeyffmpeg. Cópielo y guárdelo en el directorio que contiene sus videos para convertir, dele permiso de ejecuciónchmod +x yourscriptnamey 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.mkvinstancia en el ejemplo a su tipo de archivo de entrada, o simplemente use el codicioso*por sí mismo.Consulte la nota anterior sobre
-crfy-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