2012-04-10 89 views
2

我想將原始PCM轉換爲mp4使用ffmpeg ported for android.I面臨一個問題,其中avio_open返回負值說不能打開sample.mp4這是保存在sdcard.i中的輸出文件已經給出了像/sdcard/sample.mp4這樣的文件路徑。ffmpeg avio_open()無法打開編碼流輸出文件

avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) returns -2 

/*打開輸出文件,如果需要的話*/

if (!(fmt->flags & AVFMT_NOFILE)) { 
    if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) { 
     fprintf(stderr, "Could not open '%s'\n", filename); 
     return 1; 
    } 
} 

什麼想法?

回答

2

我有同樣的問題,但即時通訊我的情況我有編解碼器和複用器啓用。通過啓用文件協議--enable-protocol = file解決了我的問題。

+0

您是否將音頻和視頻混合在一起,例如aac和h264匹配時間線 – 2012-04-17 17:25:52

+0

@Dmytro您的案例中的編解碼器是什麼?是否試圖寫入文件(保存流)? – Raulp 2012-04-17 20:46:29

+0

在我的情況是mpeg4。任務是將視頻流從vlib重新編碼爲mpeg4,並保存到沒有音頻的文件(mp4)。 – Dmytro 2012-05-10 13:02:05

2

您需要構建用於啓用mp4.fave的ffmpeg。爲此,您必須在ffmpeg根目錄的build.sh文件中啓用mp4格式的muxer和編解碼器(編碼器 - 解碼器)。編解碼器是我認爲它是MPEG4.Build它,然後將其用於MP4文件。

+0

通過啓用複用器解決了問題 – 2012-04-13 05:17:50