質問

FFMPEGを使用してコマンドラインからビデオファイルを変換する際に問題がいくつかあります。 CentOSサーバーを使用していますが、残念ながらシェルにアクセスできません。

次のコマンドを使用して音を抑制した場合、すべてが完全に機能します(もちろん、音はありません!)

ffmpeg -i $infile -an test.flv

ただし、任意の方法でサウンドを有効にしようとすると、出力されるファイルのファイルサイズは0 kbになります。

FFMPEGはlibmp3lameおよびlibfaacをサポートしてコンパイルされ、必要なコーデックがインストールされます。サーバー上のFFMPEGの構成は次のとおりです。

  

FFmpegバージョンSVN-rUNKNOWN、Copyright(c)2000-2007 Fabrice Bellard、et al。   設定:--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

これは、ファイルサイズが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

誰かがここで何が起こっているかについてのヒントを提供できれば、本当に感謝しています!

編集-stderrをファイルにリダイレクトしたときの結果

FFmpegバージョンSVN-rUNKNOWN、Copyright(c)2000-2007 Fabrice Bellard、et al。設定:--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 libavutilバージョン:49.4.0 libavcodecバージョン:51.40.4 libavformatバージョン:51.12.1ビルド2007年6月4日11:02:12、gcc:4.1.1 20070105(赤ハット4.1.1-52)

入力#0、mov、mp4、m4a、3gp、3g2、mj2、「/ path / to / 7b4e37e703ce0a104f027cb9125b1a19.mp4」から:期間:00:00:32.4、開始:0.000000、ビットレート:122 kb / sストリーム#0.0(jpn):ビデオ:h263、yuv420p、176x144、29.97 fps(r)ストリーム#0.1(jpn):オーディオ:samr / 0x726D6173、8000 Hz、モノラル

出力#0、flv、to '/path/to/test.flv':ストリーム#0.0:ビデオ:flv、yuv420p、176x144、q = 2-31、200 kb / s、29.97 fps(c)ストリーム#0.1:オーディオ:mp3、8000 Hz、モノ、64 kb / s ストリームマッピング:ストリーム#0.0-> #0.0ストリーム#0.1-> #0.1

入力ストリーム#0.1でサポートされていないコーデック(id = 73728)

役に立ちましたか?

解決

サーバーへのアクセス権はどのようなものですか-コマンドを実行する能力が必要です。

その場合、 ffmpeg のエラー出力はどうなりますか?

おそらく、適切な詳細な引数は、問題の詳細を教えてくれますか?

編集:

標準エラー出力を取得できるかどうかを確認しましょう。 実行:

ffmpeg -version 

そして、そのための出力を取得できるかどうかを確認します。いくつかのstderr出力を抽出できたら、元の問題を調査できます。

編集:

つまり、 stderr を失っているように見えます。今度は、それを取得する方法を検討する必要があります。

たぶん:

ffmpeg -version 2>&1

動作しますか

編集:

どこで入手しているか-入力オーディオコーデックはサポートされていません:

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

Stream#0.1(jpn):Audio:samr / 0x726D6173、8000 Hz、mono が何であるかわかりません。

しかし、あなたには問題があります。

ローカルのLinuxボックスで調査することをお勧めします。問題が見やすい場合があります。

編集:

http://www.nabble.com/Convert-から3gp-samr-file-td20514476.html ffmpegは-enable-libamr-nbをサポートしてコンパイルできるようです --enable-libamr-wb

ffmpeg の再コンパイルはオプションですか?

他のヒント

この問題は解決しました。ここに私のコード:

<?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
?>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top