2

いくつかの (たとえば: 10) mp4 ビデオを flv ビデオに変換する必要がある C++ プログラムを作成します。次のように、各ビデオのプログラムでffmpegを使用します。

system("ffmpeg -i video -filter:v yadif -ar 44100 -sameq -y -f flv temp.flv")

ただし、実際には、最初のビデオのみが正常に変換され、他のビデオは失敗します。
つまり
、変換するビデオの入力順序を変更してプログラムを再実行すると、同じように動作します。最初のビデオのみ (入力ビデオの順序を変更するたびに異なります) が正常に変換されます。

次のようなエラーメッセージ:

[h264 @ 0xaee0740] 45 DC、45 AC、45 MV エラーの隠蔽
[h264 @ 0xaee0ce0] AVC: 最終サイズ 305665
最後のメッセージが 1 回繰り返された
[h264 @ 0xaee0ce0] フレームなし!
[h264 @ 0xaee1280] AVC: 最終サイズ 572993
最後のメッセージが 1 回繰り返されました
[h264 @ 0xaee1280] フレームなし!
[aac @ 0xad9ccc0] チャネル要素 0.13 が割り当てられていません
ストリーム #0:1 のデコード中にエラーが発生しました
[aac @ 0xad9ccc0] チャネル要素 0.13 が割り当てられていません
ストリーム #0:1 のデコード中にエラーが発生しました
[aac @ 0xad9ccc0] チャネル要素 0.13 が割り当てられていません
エラーストリーム #0:1 のデコード中に
......
最も奇妙なことは、bash シェルで ffmpeg コマンドを実行すると、すべてのビデオが正常に変換されることです。.

グーグルで調べた後、私はこれらを試しました(確かに失敗しました):

  1. -sameq オプションを削除しても、結果は同じです。
  2. 次のように、シェル スクリプト ConvertToFlv.sh に ffmpeg commod を記述します。

    /usr/local/bin/ffmpeg -i "$dir/$1" -filter:v yadif -ar 44100 -sameq -y -f flv "$dir/temp.fiv"
    

    次に、このスクリプトを次のようなプログラムで呼び出します

    system("ConvertToFlv.sh"+video)
    

    また

    system("sh ConvertToFlv.sh"+video)
    

    結果は同じです。

ffmpeg 構成は次のとおりです。

  ffmpeg version 0.9.1.git Copyright (c) 2000-2012 the FFmpeg developers
  built on Dec 17 2012 16:17:30 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
  configuration: --enable-gpl --enable-postproc --enable-nonfree --enable-postproc --enable-swscale --enable-avfilter --enable-pthreads --enable-libxvid --enable-libx264 --enable-libmp3lame --enable-libfaac --disable-ffserver --disable-ffplay
  libavutil      51. 41.100 / 51. 41.100
  libavcodec     54.  4.100 / 54.  4.100
  libavformat    54.  1.100 / 54.  1.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 62.101 /  2. 62.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  7.100 /  0.  7.100
  libpostproc    52.  0.100 / 52.  0.100

私のマシン環境は次のとおりです。

Linux master 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

私は今いらいらしています、誰かが私にアドバイスをくれることを願っています、本当に感謝しています.

4

0 に答える 0