Dominar la sincronización de audio con audio delay de Transloadit

Presentamos el parámetro audio delay
Una de las herramientas más singulares disponibles para el Robot
/video/merge es su parámetro audio_delay, que te
permite pausar el audio durante una cantidad definida de segundos. Al principio, añadir un retraso
de audio a un video puede parecer un caso de uso muy específico. Una búsqueda rápida en línea del
término «audio delay» te dará páginas y páginas de información sobre cómo corregir el retraso de
audio, en lugar de crearlo intencionalmente. Sin embargo, después de experimentar un rato con el
Robot /video/merge,
rápidamente encontré un uso ingenioso para el parámetro que quiero compartir contigo hoy 😄
Preparación del video y el audio
En la misma línea de mi publicación anterior, en la que mostré los nuevos parámetros de marca de agua, usaré un video gratuito de videos de Pexels para hacer una muestra rápida del parámetro. Además, necesitaremos algo de audio para empezar, así que voy a usar la pista musical gratuita «Hey Mercy» de Pierce Murphy publicada bajo la licencia CC BY 4.0.

Sincronizar todo
Con el Robot /video/merge podemos combinar los archivos de video y audio mencionados con bastante facilidad. Este es un ejemplo de una implementación que creé para extraer los archivos de video y audio almacenados en mi Dropbox, combinarlos y subir el video final a YouTube.
const { Transloadit } = require('transloadit')
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_SECRET_KEY,
})
const options = {
params: {
steps: {
dropbox_imported_video: {
robot: '/dropbox/import',
result: 'true',
credentials: 'my_videos',
path: `Videos/${process.argv[2]}`,
},
dropbox_imported_mp3: {
robot: '/dropbox/import',
result: 'true',
credentials: 'my_videos',
path: `Music/${process.argv[3]}`,
},
merged: {
use: {
steps: [
{
name: 'dropbox_imported_video',
as: 'video',
},
{
name: 'dropbox_imported_mp3',
as: 'audio',
},
],
},
robot: '/video/merge',
result: 'true',
audio_delay: 0,
ffmpeg_stack: 'v7',
preset: 'hls-1080p',
},
exported: {
use: ['merged'],
robot: '/youtube/store',
credentials: 'youtube_auth_xxxxxxxxxx',
title: process.argv[4],
description: 'Using the /video/merge Robot I can merge audio and video!',
keywords: 'music',
category: 'education',
visibility: 'unlisted',
},
},
},
}
transloadit.createAssembly(options)
.then((result) => console.log({ result }))
.catch(console.error)
Y aquí podemos ver el resultado:
No parece encajar demasiado bien, ¿verdad? Aquí es donde el parámetro
audio_delay puede lucirse. Añadámoslo a la parte
/video/merge de la implementación, así:
merged:{
use: {
steps: [
{
name: "dropbox_imported_video",
as: "video"
},
{
name: "dropbox_imported_mp3",
as: "audio"
}
]
},
robot: "/video/merge",
result: true,
audio_delay: 2.5,
ffmpeg_stack: "v7",
preset: "hls-1080p"
}
Podemos establecer la cantidad de segundos para definir cuándo queremos que empiece a reproducirse el audio. En nuestro video original, parece que la aguja cae alrededor de los 2,5 segundos, así que hagamos que nuestro audio se reproduzca desde ese punto. Después de ejecutar el código de nuevo, tengo muchas ganas de ver el video resultante:
¡Y listo! Nuestro audio y nuestro video quedaron perfectamente sincronizados gracias al parámetro
audio delay. En mi opinión, este es uno de los parámetros más singulares
disponibles para nuestros Robots aquí en Transloadit. Espero
que esta publicación despierte algo de creatividad o, al menos, ayude a quien esté buscando esa
proverbial aguja en el pajar: ¡cómo crear, en lugar de corregir, un retraso de audio en un video!