3

我正在尝试使用为 android 移植的 ffmpeg 将原始 PCM 转换为 mp4。我面临一个问题,其中 avio_open 返回负值说无法打开 sample.mp4 这是保存在 sdcard 中的输出文件。我给出了像 /sdcard 这样的文件路径/样本.mp4。

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;
     }
 }

任何的想法?

4

2 回答 2

2

您需要构建 ffmpeg 以启用 mp4。您是否这样做了。为此,您必须在 ffmpeg 根目录的 build.sh 文件中为 mp4 格式启用复用器和编解码器(编码器解码器)。我认为编解码器是它是 MPEG4。构建它,然后将其用于 MP4 文件。

于 2012-04-12T10:57:13.327 回答
2

我有同样的问题,但我的情况是我启用了编解码器和复用器。通过启用文件协议 --enable-protocol=file 解决了我的问题。

于 2012-04-17T12:06:26.383 回答