2013-06-12 58 views
1

基本上,我有一個非常具體的用例。我需要將mp2視頻轉換爲mp4。FFmpeg 0.8 - 編譯庫將mp2轉換爲mp4

視頻輸入:

Codec: MPEG-1/2 Video (mpgv) 
Resolution: 720x576 
Frame rate: 50 
Decoded format: Planar 4:2:0 YUV 

輸入音頻:

Codec: MPEG Audio layer 1/2/3 (mpga) 
Channels: Stereo 
Sample rate: 48000 Hz 
Bitrate: 192 kb/s 

我使用Android和我使用this tutorial(它使用0.8,這就是爲什麼我使用的版本)來編譯適用於Android的FFmpeg。到目前爲止,我已經成功創建了一個.so,並且可以運行ndk-build來編譯.c jni文件。

的呼籲:

av_open_input_file(&gFormatCtx, gFileName, NULL, 0, NULL) 

生成:

06-12 08:53:22.570: E/FFmpegTest(1219): Error open video file: -1094995529 

我不明白這個錯誤,並且谷歌搜索返回任何幫助。有誰知道可能是什麼原因造成的?

另外,作爲第二個選項,我開始研究FFmpeg中提供的示例。 decode_encoding.c具體。不幸的是,這個文件引用了一個「channel_layout.h」,它在編譯後在我的包含中不存在。 (我注意到我正在看現代FFmpeg的例子,我打開0.8版本的例子,它是不同的,我會先看看)

+0

你要搜索該錯誤代碼,而無需減號得到多少。它是AVERROR_INVALIDDATA的#define。看到這個問題:http://stackoverflow.com/questions/22944133/how-can-i-find-out-what-this-ffmpeg-error-code-means/28834523#28834523 – LawfulEvil

回答

3

我嘗試了很多教程,但爲我工作的是這一個(和這是一個很多較新的),然後我用avformat_open_input打開它:

http://bambuser.com/opensource

也請發表您是如何創建gFormatCtx和gFileName價值!

我跟着本教程中,即使它是一個老版本,它是偉大學​​習:

http://dranger.com/ffmpeg

+0

我會看看bambuser.com。我認爲我正在處理的可能是最糟糕的情況。我不應該故意使用舊的庫。我會稍微研究一下bambuser。 – Knossos

+0

你有沒有任何示例代碼/教程,你曾經學習。如果我可以避免,我不希望將樣本用於棄用的代碼。 – Knossos

+0

這是有史以來最好的教程(儘管它是過時的,它是最好的教程):http://dranger.com/ffmpeg – thiagolr