Código en php que ejecuta ffmpeg para la conversión de vídeos a los formatos OGG, WEBM y MP4 y realiza la inserción de las rutas a una tabla de una base de datos en oracle.
Código PHP:
/*esta funcion realiza la conversion de los videos a los 3 formatos (OGG,WEBM,MP4) recibiendo como parametro la ruta origen y la ruta final
y el formato al que se debe convertit*/
function convertirVideo($rutaConvertir,$rutaFinal,$formato){
echo shell_exec("ffmpeg -y -i $rutaConvertir -s 720x480 $rutaFinal{$formato} >/dev/null 2>/dev/null &");
return $bandera=true;
}
/*Esta funcion inserta la ruta final de un video ya convertido dependiendo del tipo de video*/
function insertar($idNuevo,$rutaConvertirSinPuntos,$columna,$ruta,$newIdArchivo){
if($columna==" "){
$query_sql = "insert into FO04(FO04_ID,FO04_RUTACONVERTIR,FO04_ID_ARCHIVO)VALUES($idNuevo,'$rutaConvertirSinPuntos',$newIdArchivo)";
}
else{
$query_sql = "insert into FO04(FO04_ID,FO04_RUTACONVERTIR,$columna,FO04_ID_ARCHIVO)VALUES($idNuevo,'$rutaConvertirSinPuntos','$ruta',$newIdArchivo)";
}
echo $query_sql;
query_bd($query_sql);
}
/*Arreglos que contienen los formatos en los que se convertira el video*/
$formatos= Array (".ogg",".webm",".mp4");
$formatosConvertirMP4= Array (".ogg",".webm");
$formatosConvertirOGG= Array (".webm",".mp4");
$formatosConvertirWEBM= Array (".ogg",".mp4");
//compara si el video es admitido o no
if (in_array($extension, $extensionesVIDEOS))
{ /*COMIENZAN LAS COMPARACIONES DE VIDEOS*/
if ($tipoVideo != "mp4" && $tipoVideo != "ogg" && $tipoVideo != "webm")
{ if (move_uploaded_file($_FILES["archivo"]["tmp_name"], $rutaConvertir))
{ $rutaConvertirSinPuntos = substr("$rutaConvertir", 3);
insertar($idNuevo,$rutaConvertirSinPuntos," "," ",$newIdArchivo);
ocicommit($conexion);
echo "El archivo " . $nombreCompleto . " se ha subido.";
$rutaFinal = "../subidas/$nombre";//esta es la ruta final en el servidor
$rutaFinal22 = "subidas/$nombre";//esta es la ruta final en el servidor
$columnasParaTODOS=Array("FO04_RUTASERVIDOR_OGG","FO04_RUTASERVIDOR_WEBM","FO04_RUTASERVIDOR_MP4");
for($i = 0; $i < count($formatos); ++$i){
$bandera=convertirVideo($rutaConvertir,$rutaFinal,$formatos[$i]);
if($bandera==true){
$rt = substr("$rutaFinal{$formatos[$i]}", 3);
updateRuta($columnasParaTODOS[$i],$rt,$idNuevo);
ocicommit($conexion);}
else
{
echo "Error al convertir el video";
}
}
}
else{echo "Ocurrió un error al subir el video!!.";}
}
else
{
if ($tipoVideo == "mp4")
{
if (move_uploaded_file($_FILES["archivo"]["tmp_name"], $target_file))
{
$rutaFinalServidorSinPuntos = substr("$target_file", 3);
insertar($idNuevo,$rutaFinalServidorSinPuntos,"FO04_RUTASERVIDOR_MP4",$rutaFinalServidorSinPuntos,$newIdArchivo);
ocicommit($conexion);
echo "El archivo " . $nombreCompleto . " se ha subido.";
$rutaFinal2 = "../subidas/$nombre";//esta es la ruta final en el servidor
$columnasParaMP4=Array("FO04_RUTASERVIDOR_OGG","FO04_RUTASERVIDOR_WEBM");
for($i = 0; $i < count($formatosConvertirMP4); ++$i)
{
$bandera=convertirVideo($target_file,$rutaFinal2,$formatosConvertirMP4[$i]);
if($bandera==true)
{
$rt2 = substr("$rutaFinal2{$formatosConvertirMP4[$i]}", 3);
updateRuta($columnasParaMP4[$i],$rt2, $idNuevo);
ocicommit($conexion);
}
else
{
echo "Error al convertir el video";
}
}
}
else
{
echo "Ocurrió un error al subir el video!!.";
}
}
else
{
if ($tipoVideo == "ogg" || $tipoVideo == "webm")
{
if ($tipoVideo == "ogg")
{
if (move_uploaded_file($_FILES["archivo"]["tmp_name"], $target_file))
{
$rutaFinalServidorSinPuntos2 = substr("$target_file", 3);
insertar($idNuevo,$rutaFinalServidorSinPuntos2,"FO04_RUTASERVIDOR_OGG",$rutaFinalServidorSinPuntos2,$newIdArchivo);
ocicommit($conexion);
echo "El archivo " . $nombreCompleto . " se ha subido.";
$rutaFinal3 = "../subidas/$nombre";//esta es la ruta final en el servidor
$columnasParaOGG=Array("FO04_RUTASERVIDOR_WEBM","FO04_RUTASERVIDOR_MP4");
for($i = 0; $i < count($formatosConvertirOGG); ++$i)
{
$bandera=convertirVideo($target_file,$rutaFinal3,$formatosConvertirOGG[$i]);
if($bandera==true)
{
$rt3 = substr("$rutaFinal3{$formatosConvertirOGG[$i]}", 3);
updateRuta($columnasParaOGG[$i],$rt3, $idNuevo);
ocicommit($conexion);
}
else
{
echo "Error al convertir el video";
}
}
}
else
{
echo "Error al convertir el video";
}
}
else
{
if ($tipoVideo == "webm")
{
if (move_uploaded_file($_FILES["archivo"]["tmp_name"], $target_file))
{
$rutaFinalServidorSinPuntos3 = substr("$target_file", 3);
insertar($idNuevo,$rutaFinalServidorSinPuntos3,"FO04_RUTASERVIDOR_WEBM",$rutaFinalServidorSinPuntos3,$newIdArchivo);
ocicommit($conexion);
echo "El archivo " . $nombreCompleto . " se ha subido.";
$rutaFinal4 = "../subidas/$nombre";//esta es la ruta final en el servidor
$columnasParaWEBM=Array("FO04_RUTASERVIDOR_OGG","FO04_RUTASERVIDOR_MP4");
for($i = 0; $i < count($formatosConvertirWEBM); ++$i)
{
$bandera=convertirVideo($target_file,$rutaFinal4,$formatosConvertirWEBM[$i]);
if($bandera==true)
{
$rt4 = substr("$rutaFinal4{$formatosConvertirWEBM[$i]}", 3);
updateRuta($columnasParaWEBM[$i],$rt4, $idNuevo);
ocicommit($conexion);
}
else
{
echo "Error al convertir el video";
}
}
}
else
{
echo "Ocurrió un error al subir el video!!.";
}
}
}
}
}
}
}
?>
Código PHP:
if ($TIPO_EXTENSION == "video") {
$query_sql2 = " SELECT FO04_RUTASERVIDOR_MP4, FO04_RUTASERVIDOR_OGG, FO04_RUTASERVIDOR_WEBM FROM FO04 WHERE FO04_ID_ARCHIVO = $ID_ARCHIVO";
$resultado2 = query_bd($query_sql2);
if ($resultado2) {
while (($row2 = oci_fetch_array($resultado2, OCI_ASSOC)) != false) {
$RUTA_VIDEO = $row2["FO04_RUTASERVIDOR_MP4"];
$RUTA_OGG = $row2["FO04_RUTASERVIDOR_OGG"];
$RUTA_WEBM = $row2["FO04_RUTASERVIDOR_WEBM"];
echo "<center><video id='imgTemaDesplegado' controls>";
if($RUTA_VIDEO!=null){
echo "<source src='$RUTA_VIDEO' type=\"video/mp4\">";
}
if($RUTA_OGG!=null){
echo "<source src='$RUTA_OGG' type=\"video/ogg\">";
}
if($RUTA_WEBM!=null){
echo "<source src='$RUTA_WEBM' type=\"video/webm\">";
}
echo "Your browser does not support the video tag.</video></center>";
}
}
}
De antemano gracias y espero que puedan ayudarme resolviendo las dudas que tengo y o proporcionando informacion que sea de mi ayuda