Pregunta

Tengo algunos problemas para convertir archivos de video desde la línea de comandos usando FFMPEG. Estoy usando un servidor CentOS, pero desafortunadamente no tengo acceso a shell.

Cuando suprimo el sonido con el siguiente comando, todo funciona perfectamente (¡excepto, por supuesto, no hay sonido!)

ffmpeg -i $infile -an test.flv

Sin embargo, cuando trato de habilitar el sonido en cualquier forma, el archivo que se emite tiene un tamaño de archivo de cero kb.

FFMPEG se compila con soporte para libmp3lame y libfaac, y se instalan los códecs necesarios. Aquí está la configuración de FFMPEG en el servidor:

  

Versión FFmpeg SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.   configuración: --prefix = / usr --libdir = / usr / lib --mandir = / usr / share / man --incdir = / usr / include / ffmpeg --enable-libmp3lame --enable-libog3laenenable-libogg --enable- libvorbis --enable-libogg --enable-libtheora --enable-libfaad --enable-libfaac --enable-libgsm --enable-xvid --enable-x264 --enable-liba52 --enable-liba52bin --enable- pp --enable-shared --enable-pthreads --enable-gpl --disable-strip

Aquí hay una muestra muy pequeña de algunos de los comandos que he probado que dan como resultado un tamaño de archivo de 0Kb:

ffmpeg -i $infile test.flv
ffmpeg -i $infile -vcodec copy -acodec ac3 test.flv
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec mp3 test.flv
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec copy $outfile
ffmpeg -vcodec copy -acodec copy -i $infile -vcodec copy -acodec aac $outfile

Si alguien pudiera dar alguna pista sobre lo que está pasando aquí, ¡realmente lo agradecería!

EDITAR : aquí está el resultado cuando redirijo stderr a un archivo

Versión FFmpeg SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuración: --prefix = / usr --libdir = / usr / lib --mandir = / usr / share / man --incdir = / usr / include / ffmpeg --enable-libmp3lame --enable-libogg --enable-libvorbis --enable-libogg - enable-libtheora --enable-libfaad --enable-libfaac --enable-libgsm --enable-xvid --enable-x264 --enable-liba52 --enable-liba52bin --enable-pp --enable-shared - enable-pthreads --enable-gpl --disable-strip versión libavutil: 49.4.0 versión libavcodec: 51.40.4 versión libavformat: 51.12.1 construida el 4 de junio de 2007 11:02:12, gcc: 4.1.1 20070105 (Rojo Sombrero 4.1.1-52)

Entrada # 0, mov, mp4, m4a, 3gp, 3g2, mj2, desde '/path/to/7b4e37e703ce0a104f027cb9125b1a19.mp4': Duración: 00: 00: 32.4, inicio: 0.000000, velocidad de bits: 122 kb / s Stream # 0.0 (jpn): Video: h263, yuv420p, 176x144, 29.97 fps (r) Stream # 0.1 (jpn): Audio: samr / 0x726D6173, 8000 Hz, mono

Salida # 0, flv, a '/path/to/test.flv': Stream # 0.0: Video: flv, yuv420p, 176x144, q = 2-31, 200 kb / s, 29.97 fps (c) Stream # 0.1: Audio: mp3, 8000 Hz, mono, 64 kb / s Mapeo de flujo: flujo # 0.0 - > # 0.0 Corriente # 0.1 - > # 0.1

Códec no compatible (id = 73728) para la secuencia de entrada # 0.1

¿Fue útil?

Solución

¿Qué tipo de acceso tiene al servidor? Debe tener alguna capacidad para ejecutar comandos en él.

Siendo ese el caso, ¿cuál es la salida de error de ffmpeg ?

¿Posiblemente un argumento detallado apropiado le diga más sobre el problema?

EDITAR:

Veamos si podemos obtener la salida stderr. Ejecutar:

ffmpeg -version 

Y vea si puede obtener algún resultado. Una vez que haya logrado extraer algunos resultados de stderr, podemos investigar el problema original.

EDITAR:

Por lo tanto, parece que está perdiendo stderr ; ahora necesita saber cómo recuperarlo.

Quizás:

ffmpeg -version 2>&1

¿funcionará?

EDITAR:

Cómo estamos llegando a algún lado: el códec de audio de entrada no es compatible:

Unsupported codec (id=73728) for input stream #0.1

No sé qué Stream # 0.1 (jpn): Audio: samr / 0x726D6173, 8000 Hz, mono .

Pero hay un problema.

Le sugiero que desee investigar en una caja de Linux local; podría ser más fácil ver los problemas.

EDITAR:

De http://www.nabble.com/Convert- 3gp-samr-file-td20514476.html parece que ffmpeg se puede compilar con el soporte --enable-libamr-nb --enable-libamr-wb .

¿Recompilar ffmpeg es una opción?

Otros consejos

Resolví este problema. Aquí mi código:

<?php
   define('FFMPEG_LIBRARY', '/usr/local/bin/ffmpeg');
   $exec_string = FFMPEG_LIBRARY.' -i robot.avi -an output.flv';
   exec($exec_string); //where exec is the command used to execute shell command in php
?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top