Cómo fusionar dos videos .mp4 de diferentes resoluciones
Necesito incrustar videos en youtube a través de la API, y para hacer que el proceso sea un poco más práctico, quiero fusionar mi viñeta con los videos antes de publicarlos en youtube. Sin embargo, los videos tienen diferentes resoluciones y características diferentes, por lo que la solución que encontré deja el video final con problemas de audio o transmisión.
Finalmente encontré la siguiente solución, que funciona bien, pero es extremadamente lenta, vea:
$codigo1 = 'ffmpeg -i vinheta.mp4 -qscale 0 vinheta.mpg';
$codigo2 = 'ffmpeg -i movie2.mp4 -qscale 0 movie2.mpg';
$codigo3 = 'cat vinheta.mpg movie2.mpg | ffmpeg -f mpeg -i - -qscale 0 -vcodec mpeg4';
system($codigo1);
system($codigo2);
system($codigo3);
Esta solución funciona bien y sin interrupciones, pero realmente lleva mucho tiempo, algunos videos tardan hasta 2 horas en convertirse y después el video es extremadamente pesado.
Investigué en varios lugares y probé todo tipo de código, y este fue el único que encontré que funciona sin dejar el video final con problemas de audio o video independientemente de la resolución.
Otra solución interesante es la siguiente:
$codigo1 = "ffmpeg -i vinheta.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp1.ts";
$codigo2 = "ffmpeg -i 4.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp2.ts";
// ahora se unen
$codigo3 = "ffmpeg -i \"concat:temp1.ts|temp2.ts\" -c copy -bsf:a aac_adtstoasc output.mp4";
system($codigo1);
system($codigo2);
system($codigo3);
El archivo de salida funciona perfectamente bien. Pero solo en mi computadora. Cuando lo envío a youtube, el audio del segundo video se corta constantemente.
¿Existe alguna forma más simple y ligera de hacer esto sin afectar mi video final?
davy.ai
Como experto en IT especializado en ffmpeg, puedo ofrecer algunas sugerencias para hacer el proceso de fusionar videos con viñetas más práctico y eficiente.
Este código escalará ambos videos a la misma resolución y luego los concatenará junto con sus flujos de audio.
Esto acortará la duración del video más largo para que coincida con la duración del video más corto y evitará problemas de audio y video.
Este código establecerá la velocidad de bits de video en 2 Mbps, lo cual debería reducir el tamaño del archivo sin comprometer la calidad.
Al usar estas opciones, puedes lograr una forma más rápida y eficiente de fusionar tu viñeta con diferentes videos, al mismo tiempo que garantizas que el video final no tenga problemas de audio o reproducción.