Guillermo Luijk
Fujista Habitual
En ocasiones construyo vídeos a partir de frames individuales (son vídeos cortos de un par de minutos, pero pueden requerir 2000-3000 imágenes o frames totales). Con ellos genero un archivo de vídeo MP4 en el cual incrusto una pista de audio en formato WAV. Lo hago con la utilidad FFMpeg usando un comando del tipo:
ffmpeg -framerate 150 -i img%4d.png -i secretspectrogram.wav -c:v libx264 -crf 18 -pix_fmt yuv420p secretspectrogram.mp4
ffmpeg -framerate 30.8775 -i img%5d.png -i secretspectrogramSTARWARS.wav -c:v libx264 -crf 18 -pix_fmt yuv420p secretspectrogramSTARWARS.mp4
La pregunta es: para asegurar una reproducción suave sin saltos, tanto en un PC como desde un móvil, hay unos framerate recomendables/obligatorios? se me está yendo la pinza con un framerate de 150fps (primer vídeo)? o por meter decimales en los 30.8775fps (segundo vídeo)? de qué depende que la reproducción sea suave, de la potencia del dispositivo donde se ve el vídeo o hay algo más?
El primer vídeo lo hice a 150fps para tener un scroll suave y se reproduce perfectamente en mi portátil. En cambio en el móvil da algún que otro saltito casi imperceptible:
El segundo vídeo es mucho menos exigente, pero tiene un framerate que no es entero: 30.8775fps
Éste se me reproduce con algunos saltos tanto en el portátil como en el móvil, curioso cuando demanda unas 5 veces menos fps que el otro vídeo.
El audio de ambos vídeos se reproduce 100% bien en cualquier dispositivo.
Quizá deba cambiar los parámetros de mmpeg, siempre uso los mismos que puse arriba. Tengo anotado este significado:
-c:v libx264: codec H.264 (AVC=Advanced Video Coding). Interframe codec (codifica los cambios de un frame al siguiente)
-crf: calidad (constant bit rate), defecto=23, sin pérdida=0, no mejora por debajo de 18
-pix_fmt yuv420p: should be used to enable 4:2:0 downsampling for the PNG input, which usually isn't downsampled at all
(4:4:4, as observed in your output) and often contains an Alpha channel. YouTube won't handle this correctly.
Por cierto los vídeos que he enlazado representan el espectro del sonido que reproducen, con mensajes ocultos en él. De ahí que salgan letras e imágenes.
Salu2!
ffmpeg -framerate 150 -i img%4d.png -i secretspectrogram.wav -c:v libx264 -crf 18 -pix_fmt yuv420p secretspectrogram.mp4
ffmpeg -framerate 30.8775 -i img%5d.png -i secretspectrogramSTARWARS.wav -c:v libx264 -crf 18 -pix_fmt yuv420p secretspectrogramSTARWARS.mp4
La pregunta es: para asegurar una reproducción suave sin saltos, tanto en un PC como desde un móvil, hay unos framerate recomendables/obligatorios? se me está yendo la pinza con un framerate de 150fps (primer vídeo)? o por meter decimales en los 30.8775fps (segundo vídeo)? de qué depende que la reproducción sea suave, de la potencia del dispositivo donde se ve el vídeo o hay algo más?
El primer vídeo lo hice a 150fps para tener un scroll suave y se reproduce perfectamente en mi portátil. En cambio en el móvil da algún que otro saltito casi imperceptible:
El segundo vídeo es mucho menos exigente, pero tiene un framerate que no es entero: 30.8775fps
Éste se me reproduce con algunos saltos tanto en el portátil como en el móvil, curioso cuando demanda unas 5 veces menos fps que el otro vídeo.
El audio de ambos vídeos se reproduce 100% bien en cualquier dispositivo.
Quizá deba cambiar los parámetros de mmpeg, siempre uso los mismos que puse arriba. Tengo anotado este significado:
-c:v libx264: codec H.264 (AVC=Advanced Video Coding). Interframe codec (codifica los cambios de un frame al siguiente)
-crf: calidad (constant bit rate), defecto=23, sin pérdida=0, no mejora por debajo de 18
-pix_fmt yuv420p: should be used to enable 4:2:0 downsampling for the PNG input, which usually isn't downsampled at all
(4:4:4, as observed in your output) and often contains an Alpha channel. YouTube won't handle this correctly.
Por cierto los vídeos que he enlazado representan el espectro del sonido que reproducen, con mensajes ocultos en él. De ahí que salgan letras e imágenes.
Salu2!