que comprimir php audio video ffmpeg ogg

php - comprimir - ffmpeg que es



ffmpeg/PHP-Problemas para convertir cualquier formato de video a ogg-Choppy Video/No Audio-win64 (1)

Como de costumbre, al publicar mi pregunta aquí (después de incontables horas de resolución de problemas), creo que puedo haber corregido el problema. Necesitaba especificar, no solo los códecs de audio / video para convertir el archivo, sino también la tasa de bits de audio / video para el video de salida .ogg:

//CREATE CLASS INSTANCE $ffmpegObj = new ffmpeg_movie($srcFile); //GET AUDIO BITRATE FROM SOURCE FILE $srcAB = intval($ffmpegObj->getAudioBitRate()); //GET VIDEO BITRATE FROM SOURCE FILE $srcVB = intval($ffmpegObj->getVideoBitRate()); //SET THE AUDIO CODEC TO LIBVORBIS $aCodec = '' -acodec libvorbis''; //SET THE VIDEO CODEC TO LIBTHEORA $vCodec = '' -vcodec libtheora''; exec($ffmpegPath." -i ".$srcFile.$vCodec." -vb ".$srcVB." -ab ".$srcAB." ".$destFile);

Esto produce un video / audio con una calidad muy similar a la del formato de video original.

Obviamente, cualquiera que intente utilizar el código anterior deberá agregar las referencias a $ ffmpegPath / $ srcFile / $ destFile y tener la clase ffmpeg disponible para su script.

Además, al ver inicialmente el video .ogg en Firefox localmente en mi pc, el video se congelaba cuando comenzaba a reproducirse y luego saltaba a la posición correcta (relativa al audio) después de unos segundos, sin embargo, si se reproducía desde el inicio, juega sin problema Supongo que mi tarjeta de video no está a la altura; lo que explicaría el problema al ver el archivo por primera vez después de la conversión.

En cualquier caso, el código anterior debería funcionar para cualquier otro que tuviera problemas para convertir al formato .ogg correctamente usando ffmpeg y php.

Permítanme primero pedirle disculpas si se trata de una publicación posterior / publicación similar, ya que hice todo lo posible para buscar una solución específica a mi problema dentro de las publicaciones ya creadas aquí, y en google, pero no pude.

Estoy usando ffmpeg en localhost en el sistema win64 para crear / probar scripts de conversión de video antes de subirlos al servidor.

Puedo convertir con éxito a / desde mp4 / flv / wmv / mov sin problema, sin embargo, cada vez que trato de convertir a .ogg desde cualquier otro formato, me encuentro con problemas.

Primero intenté esto:

exec($ffmpegPath." -i ".$srcFile." ".$destFile);

pero terminó con un archivo corrupto sin video / sonido. Luego hice algunas lecturas y encontré algunas publicaciones que decían que debes habilitar explícitamente libvorbis / libtheora al convertir a .ogg, así que probé esto:

$aCodec = '' -acodec libvorbis''; $vCodec = '' -vcodec libtheora''; exec($ffmpegPath." -i ".$srcFile.$aCodec.$vCodec." ".$destFile);

Esta vez obtuve un archivo .ogg válido, con sonido, sin embargo, la salida de video es MUY picado. Con la esperanza de tratar de encontrar el problema, comencé a hacer modificaciones a la línea ejecutiva y terminé con esto:

$ffmpegObj = new ffmpeg_movie($srcFile); $srcVB = intval($ffmpegObj->getVideoBitRate()); $vCodec = '' -vcodec libtheora''; exec($ffmpegPath." -i ".$srcFile.$vCodec." -vb ".$srcVB." ".$destFile);

que produce el video .ogg en buena calidad pero sin sonido.

¿Alguna idea sobre qué más puede ser este problema antes de tener que instalar más software (ffmpeg2theora), etc.?

Además, si ayuda, hice eco de la salida de ffmpeg y cuando se utiliza el acercamiento n.º 2 anterior y se muestran muchos errores.

100 buffers queued in output stream 0:1, something may be wrong. [ogg @ 00000000024bf780] st:0 PTS: 6743 DTS: 6743 < 7745 invalid, clipping [ogg @ 00000000024bf780] st:0 PTS: 6871 DTS: 6871 < 7746 invalid, clipping [ogg @ 00000000024bf780] st:0 PTS: 6999 DTS: 6999 < 7747 invalid, clipping [ogg @ 00000000024bf780] st:0 PTS: 7127 DTS: 7127 < 7748 invalid, clipping [ogg @ 00000000024bf780] st:0 PTS: 7255 DTS: 7255 < 7749 invalid, clipping [ogg @ 00000000024bf780] st:0 PTS: 7383 DTS: 7383 < 7750 invalid, clipping

Parece que libvorbis y libtheora no están jugando bien juntos?

Finalmente, he cambiado las compilaciones de ffmpeg.exe varias veces y todavía recibo el mismo problema.

Gracias por adelantado.

EDITAR: Como una posible solución alternativa, ¿hay alguna forma de codificar el video / audio por separado y luego volver a unirlos? ¿Esto causaría posibles problemas de sincronización de audio / video?