Domanda

Sto riscontrando alcuni problemi durante la conversione di file video dalla riga di comando utilizzando FFMPEG. Sto usando un server CentOS, ma sfortunatamente non ho accesso alla shell.

Quando sopprimo il suono usando il seguente comando, tutto funziona perfettamente (tranne ovviamente, non c'è suono!)

ffmpeg -i $infile -an test.flv

Tuttavia, quando provo ad abilitare il suono in qualsiasi , il file in uscita ha una dimensione del file di zero kb.

FFMPEG è compilato con il supporto per libmp3lame e libfaac e sono installati i codec necessari. Ecco la configurazione di FFMPEG sul server:

  

Versione FFmpeg SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.   configurazione: --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

Ecco un piccolo esempio di alcuni dei comandi che ho provato che danno come risultato una dimensione del file di 0 KB:

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 qualcuno potesse fornire qualche suggerimento su ciò che sta accadendo qui, lo apprezzerei davvero!

MODIFICA : ecco il risultato quando reindirizzo stderr a un file

Versione FFmpeg SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. configurazione: --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 versione libavutil: 49.4.0 versione libavcodec: 51.40.4 versione libavformat: 51.12.1 costruita il 4 giugno 2007 11:02:12, gcc: 4.1.1 20070105 (Rosso Cappello 4.1.1-52)

Ingresso # 0, mov, mp4, m4a, 3gp, 3g2, mj2, da '/path/to/7b4e37e703ce0a104f027cb9125b1a19.mp4': Durata: 00: 00: 32.4, inizio: 0.000000, bitrate: 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

Uscita # 0, flv, su '/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 Mappatura stream: Stream # 0.0 - > # 0.0 Stream # 0.1 - > # 0.1

Codec non supportato (id = 73728) per il flusso di input # 0.1

È stato utile?

Soluzione

Che tipo di accesso hai al server - devi avere una certa capacità di eseguire comandi su di esso.

Stando così le cose, qual è l'output dell'errore da ffmpeg ?

Forse un appropriato argomento dettagliato potrebbe dirti di più sul problema?

EDIT:

Vediamo se possiamo ottenere l'output stderr. Esegui:

ffmpeg -version 

E vedi se riesci a ottenere un output per questo. Una volta che sei riuscito a estrarre un po 'di output stderr, possiamo esaminare il problema originale.

EDIT:

Quindi sembra che stai perdendo stderr - ora devi capire come recuperarlo.

Forse:

ffmpeg -version 2>&1

funzionerà?

EDIT:

Come stiamo arrivando da qualche parte - il codec audio di input non è supportato:

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

Non so cosa sia Stream # 0.1 (jpn): Audio: samr / 0x726D6173, 8000 Hz, mono .

Ma c'è un problema.

Suggerisco che potresti voler investigare su un box Linux locale - potrebbe essere più facile vedere i problemi.

EDIT:

Da http://www.nabble.com/Convert- 3gp-samr-file-td20514476.html sembra che ffmpeg possa essere compilato con il supporto --enable-libamr-nb --enable-libamr-WB .

La ricompilazione di ffmpeg è un'opzione?

Altri suggerimenti

Ho risolto questo problema. Qui il mio codice:

<?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
?>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top