GNU/Linux >> Tutoriales Linux >  >> Linux

PHP-FFMPeg:Permitir múltiples archivos de entrada (Agregar audio al video)

Mi tarea reciente fue desarrollar un software de edición de video en línea similar a Biteable, Moovly, etc. Bueno, sabía que podía usar PHP-FFmpeg biblioteca que me permite escribir secuencias de comandos PHP y que puede interactuar con ffmpeg instalado en el sistema. Uno de los requisitos del proyecto era agregar una pista de audio al video seleccionado. El ffmpeg La herramienta de línea de comandos me permite ingresar múltiples archivos usando -i argumento. Así que simplemente puedo pasar los archivos de audio y video como un argumento y el trabajo está hecho. Sin embargo, lograr lo mismo usando la biblioteca PHP-FFMpeg fue un desafío. En este tutorial, explicaré cómo permitir múltiples archivos de entrada en la biblioteca PHP-FFMPeg.

Veamos el siguiente comando donde -i El argumento se usa para pasar múltiples archivos de entrada al ffmpeg comando.

$ffmpeg -i movie.mp4 -i audio.mp3 -codec:a libmp3lame -b:a 128k movie_output.mp4

Pero lograr lo mismo en el código PHP-FFMpeg no es sencillo. No pude encontrar ninguna documentación relevante que explicara el procedimiento para agregar varios archivos de entrada (-i movie.mp4 -i audio.mp3) .

Cómo permitir múltiples archivos de entrada en PHP-FFMPeg

Después de una búsqueda exhaustiva, encontré una solución en StackOverflow. La solución es agregar la segunda entrada como filtro. A continuación se muestra la solución rápida del código:

$audioSource = 'audio.mp3';
$video->addFilter(new SimpleFilter(['-i ', $audioSource]));

A continuación se muestra el código completo para agregar una pista de audio al video. Asegúrese de que movie.mp4, audio.mp3 y php-ffmpeg estén disponibles en la ruta donde se encuentra este archivo.

<?php

require_once 'vendor/autoload.php';
$ffmpeg = FFMpeg\FFMpeg::create();
$format = new FFMpeg\Format\Video\X264();
$format->setAudioCodec("aac");
$videoFile='movie.mp4';
$audioFile='audio.mp3';
$captionStaticFilePath=$_SERVER['DOCUMENT_ROOT'].'/';
$outputFile='movie_output.mp4';

try{
    $video = $ffmpeg->open($captionStaticFilePath.$videoFile);
    $video->addFilter(new FFMpeg\Filters\Audio\SimpleFilter(['-i', $audioFile]));
    $video->save($format, $captionStaticFilePath.$outputFile);
    die('done');
}catch(Exception $e){
    echo $e->getMessage();die;
}

?>

Linux
  1. Cómo agregar varios hosts en phpMyAdmin

  2. Agregue texto superpuesto a video usando PHP-FFMpeg

  3. Cómo comprimir varios archivos en Linux

  4. Listar los archivos a los que accede un programa?

  5. ¿Permitir que otro usuario copie los archivos de la carpeta?

Cómo unir/combinar varios archivos de audio en uno solo en Linux

Los comandos FFmpeg más útiles para la conversión de audio y video

¿Skype no encuentra la entrada de audio?

CSI:El caso de los archivos de audio WAV que faltan en la tarjeta SD FAT32

Xine Multimedia Software:reproduce archivos de audio y video en Ubuntu Linux

Cola múltiples archivos remotos