2 votos

Produce archivo mov compatible con QuickTime con fondo transparente a partir de png usando ffmpeg

QuickTime puede crear una película a partir de una secuencia de imágenes de entrada. Se pueden seleccionar diferentes formatos para la salida, incluyendo HEVC y Apple Pro Res. Desafortunadamente, QuickTime no permite controlar la tasa de compresión. El archivo que utiliza el códec HEVC tiene demasiado ruido para mi gusto y el archivo que utiliza Apple Pro Res es enorme. Alternativamente, se puede producir un archivo usando ffmpeg, de la siguiente manera

ffmpeg -framerate 60 -i %d.png -c:v libx265 -pix_fmt yuv420p -x265-params lossless=1 -vf scale=out_color_matrix=bt709 -color_primaries bt709 -color_trc bt709 -colorspace bt709 out.mov

Desafortunadamente, el archivo resultante no es compatible con QuickTime. Esto es bastante sorprendente, ya que los metadatos del archivo producido en QuickTime y el archivo obtenido de ffmpeg parecen ser bastante similares. Aquí están los metadatos del archivo de QuickTime

Metadatos:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    creation_time   : 2021-01-06T16:42:09.000000Z
  Duración: 00:00:03.02, inicio: 0.000000, bitrate: 1927 kb/s
    Stream #0:0(und): Video: hevc (Principal) (hvc1 / 0x31637668), yuv420p(tv, bt709, progresivo), 1280x960 [SAR 1:1 DAR 4:3], 1918 kb/s, 60 fps, 60 tbr, 600 tbn, 600 tbc (por defecto)
    Metadatos:
      creation_time   : 2021-01-06T16:42:09.000000Z
      handler_name    : Core Media Video
      encoder         : HEVC

y aquí están los metadatos del archivo de ffmpeg

Metadatos:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    encoder         : Lavf58.45.100
  Duración: 00:00:03.02, inicio: 0.000000, bitrate: 8003 kb/s
    Stream #0:0: Video: hevc (Principal) (hev1 / 0x31766568), yuv420p(tv, bt709, progresivo), 1280x960 [SAR 1:1 DAR 4:3], 7990 kb/s, 60 fps, 60 tbr, 15360 tbn, 60 tbc (por defecto)
    Metadatos:
      handler_name    : VideoHandler
      encoder         : Lavc58.91.100 libx265

¿Alguien sabe cómo producir un archivo compatible con QuickTime usando ffmpeg u otro software disponible gratuitamente?

2voto

Jason Miller Puntos 21

Si etiquetas tu video

-tag:v hvc1

Tu comando ffmpeg funciona para mí:

ffmpeg -framerate 60 -i %d.png -c:v libx265 -pix_fmt yuv420p -x265-params lossless=1 -vf scale=out_color_matrix=bt709 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -tag:v hvc1 out.mov

Estoy usando ffmpeg disponible en Conda-Forge en la versión: ffmpeg version 6.1.1

Editar: Parece que esto no conserva la transparencia alfa. Para lograrlo, tuve que añadir/modificar tu lista de argumentos:

ffmpeg -framerate 60 \
 -i %d.png \
 -c:v hevc_videotoolbox \
 -pix_fmt bgra \
 -x265-params \
 lossless=1 \
 -vf scale=out_color_matrix=bt709 \
 -color_primaries bt709 \
 -color_trc bt709 \
 -colorspace bt709 \
 -alpha_quality 0.9 \
 -tag:v hvc1 out.mov

¡Espero que esto ayude a otros!

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X