Convertir contenedores o transcodificar películas a iPhone desde la línea de comandos (os x)

A lo largo de los años, recopilé muchas películas en diferentes formatos de contenedor (avi, mp4, mkv) y también las codifiqué con diferentes códecs.

Ahora desea convertir contenedores (o transcodificarlos si es absolutamente necesario) en películas "compatibles con iPhone".

Después de pasar mucho tiempo en Google, todavía no sabía las respuestas exactas a las siguientes preguntas, así que confírmelas o proporcione las respuestas correctas.

  1. El iPhone solo puede reproducir el formato de contenedor mp4, por lo que mp4es el único contenedor utilizable para películas de iPhone.
  2. ¿En qué códecs pueden estar los streams? (video/audio y subtítulos)
  3. ¿Es posible incrustar subtítulos "SUAVES" en el contenedor mp4? (lo que leí, sí, pero aquí hay algunas trampas), significa subtítulos suaves, por lo que no los "grabó en la transmisión de video".
  4. ¿Cuál es la lógica correcta para convertir/transcodificar películas de diferentes formatos al formato deseado compatible con iPhone? Mi idea es más o menos:

    • obtener información de la película actual, por ejemplo, del contenedor avi
    • si el used codecsy el usado video resolutiones compatible con iPhone (como h264), solo cambie el formato del contenedor, de lo contrario
    • transcodificar la película, con:

    • si la película actual tiene una resolución más pequeña, no cambie, solo transcodifique

    • si la película actual tiene una resolución más alta, cambie su resolución proporcionalmente para que coincida con las necesidades del iPhone

Todo lo anterior quiere hacerlo desde la línea de comandos en Mac OS X, por lo tanto, con ffmpeg o mencoder y similares. (por favor, no me sugieran conversiones por lotes con una aplicación sin línea de comando)

Las preguntas son principalmente sobre whole workflow, cuáles son las trampas más comunes, recomendaciones, etc.

Estaría feliz con algunos enlaces externos a algunos buenos artículos sobre lo anterior.

Esta es mi primera pregunta aquí, y espero que esté bien con el tipo de pregunta correcto en este sitio:

  • técnicas de postproducción
  • gestión de activos, medios y formatos de archivo
  • instalación, configuración y operación de hardware o software relacionado con estos temas
¿Qué versiones de iPhone quieres admitir?
@LordNeckbeard sí, olvidé especificar, principalmente porque la mayoría de mis películas actuales tienen menos de 720p. Pero está bien, iPhone4 y superiores.
@ jm666: noté que su pregunta no ha recibido ninguna respuesta en unos días. Una cosa que noto al respecto es que parece estar haciendo varias preguntas al mismo tiempo. Es posible que pueda dividirlo en varias preguntas que se respondan más fácilmente. Por ejemplo, "¿Qué formatos de video debo usar cuando apunte al iPhone?" podría ser su propia pregunta independiente. De manera similar, la pregunta de subtítulos y las preguntas de transcodificación se pueden hacer por separado.
Esto haría dos cosas. Haría que las preguntas fueran más beneficiosas en términos generales, ya que las personas que buscan solo una parte de lo que está haciendo encontrarían una respuesta. También facilitaría la respuesta, ya que alguien podría responder solo las partes que conoce sin sentir que realmente no está respondiendo la pregunta.
@AJHenderson: sí, es un problema complejo. Preguntado con la esperanza de que alguien ya haya enfrentado el problema: "convertir su colección de películas apta para iPhone". Parece que no mucha gente hace cosas tan tontas... ;) Si no obtuve ninguna respuesta, intentaré dividir la pregunta en partes más pequeñas y eliminaré esta. Gracias por la sugerencia.

Respuestas (1)

Puede usar ffprobe (que viene con ffmpeg) para obtener información sobre sus archivos de película desde la línea de comandos.

Sin embargo, es posible que necesite algún shell-fu para convertir la salida de ffprobe en algo que pueda usar. He hecho esto en el pasado; Básicamente, canalizo la salida de ffprobe a sed o awk para obtener los bits de información que necesito, luego uso esto para controlar los parámetros de ffmpeg.

FFmpeg Wiki: FFprobe Tips tiene algunos ejemplos.