Pergunta

Eu estou tendo alguns problemas de conversão de arquivos de vídeo a partir da linha de comando usando FFMPEG. Eu estou usando um servidor CentOS, mas infelizmente eu não tenho acesso shell.

Quando eu suprimir som usando o seguinte comando, tudo funciona perfeitamente (exceto, é claro, não há som!)

ffmpeg -i $infile -an test.flv

No entanto, quando tento ativar o som no qualquer maneira em tudo, o arquivo que está sendo emitido tem um tamanho de arquivo de kb zero.

FFMPEG é compilado com suporte para libmp3lame e libfaac, e os codecs necessários estão instalados. Aqui está a configuração do FFMPEG no servidor:

versão FFmpeg SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuração: 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

Aqui está uma pequena amostra de alguns dos comandos que eu tentei que resultam em um tamanho de arquivo 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

Se alguém pode fornecer alguma dica sobre o que está acontecendo aqui, eu realmente aprecio isso!

Editar - aqui é o resultado quando eu redirecionar stderr para um arquivo

versão FFmpeg SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuração: --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 - permitir-pthreads --enable-gpl --disable-tira libavutil versão: 49.4.0 versão libavcodec: 51.40.4 versão libavformat: 51.12.1 construída em 04 de junho de 2007 11:02:12, gcc: 4.1.1 20.070.105 (Red Hat 4.1.1-52)

Input # 0, mov, mp4, m4a, 3gp, 3g2, mj2, de '/path/to/7b4e37e703ce0a104f027cb9125b1a19.mp4': Duração: 00: 00: 32.4, começar: 0,000000, bitrate: 122 kb / s Corrente # 0.0 (JPN): Vídeo: H263, yuv420p, 176x144, 29.97 fps (R) fluxo # 0.1 (JPN): Áudio: samr / 0x726D6173, 8000 Hz, mono

Output # 0, flv, para '/path/to/test.flv': Córrego # 0.0: Vídeo: flv, yuv420p, 176x144, q = 2-31, 200 kb / s, 29.97 fps (c) Corrente # 0,1: Áudio: mp3, 8000 Hz, mono, 64 kb / s mapeamento do fluxo: Córrego # 0.0 -> # 0.0 fluxo de # 0,1 -> # 0.1

codec não suportado (ID = 73728) para fluxo de entrada # 0.1

Foi útil?

Solução

Que tipo de acesso que você tem para o servidor -. Você deve ter alguma capacidade de executar comandos on it

Sendo esse o caso, qual é a saída de erro de ffmpeg?

Possivelmente um apropriado detalhado argumento iria dizer-lhe mais sobre o problema?

EDIT:

Vamos ver se podemos obter uma saída stderr. Executar:

ffmpeg -version 

E veja se você pode obter alguma saída para ele. Uma vez que você conseguiu extrair alguma saída stderr, então podemos investigar o problema original.

EDIT:

Por isso, parece que você está stderr perder - agora você precisa trabalhar para fora como para recuperá-lo

.

Talvez:

ffmpeg -version 2>&1

vai funcionar?

EDIT:

Como nós estamos chegando a algum lugar - o codec de áudio de entrada não é suportado:

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

Eu não sei o que Stream #0.1(jpn): Audio: samr / 0x726D6173, 8000 Hz, mono é.

Mas não é você é problema.

Eu sugiro que você pode querer investigar em uma caixa de Linux local - que poderia ser mais fácil de ver problemas

.

EDIT:

A partir http://www.nabble.com/Convert- 3gp-samr-file-td20514476.html parece que ffmpeg pode ser compilado com --enable-libamr-nb --enable-libamr-wb apoio.

É recompilar ffmpeg uma opção?

Outras dicas

Eu resolvi esse problema. Aqui meu 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top