android - ffmpeg avio_open() 无法打开用于写入编码流的输出文件

标签 android ffmpeg java-native-interface codec

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

有什么想法吗?

最佳答案

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

关于android - ffmpeg avio_open() 无法打开用于写入编码流的输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094489/

相关文章:

android - RecyclerView ItemDecoration - 如何为每个 viewHolder 绘制不同的宽度分隔线?

Android:如何摆脱@Generated ("org.jsonschema2pojo")?

android - 如何找到库的依赖项?

android - ListView 项目内的水平 ScrollView ?

c# - 为什么我在使用 ffmpeg 和管道实时创建视频文件时得到奇怪的视频文件?

ffmpeg - 如何使用 ffmpeg 将 MP4 转换为 WMV 以获得更好的质量?

android 在 cc/c++ 中获取 imei for ndk/JNI

android - ReferenceTable 溢出(最大值=512)JNI

c++ - 如何在 64 位 Windows 7 上使用 cygwin 从 C++ 生成 Java VM?

c++ - FFMPEG 编译自定义