我的配置路径跟churnlabs是一样的,也是把头文件放到include中的

解决方案 »

  1.   

    奇怪的是我把自己工程中的JNI文件夹全部都删除,然后拷贝churnlabs中的JNI文件夹到工程中来修改一下native.c文件,NDK编译的时候还是报错,所有的FFMPEG函数都找不到,是不是工程中还有什么地方要设置的,churnlabs用NDK是可以编译的
      

  2.   

    是我搞错了,把churnlabs的JNI目录全部拷贝过来,刷新一下工程在编译,是可以的
    可能是我静态文件的问题吧,是不是编译的步骤有什么问题
      

  3.   

    确实是静态文件的问题,重新编辑了一下mk文件,编译出来的静态文件就可以了,ndk-build的时候能通过,
    但是av_open_input_file(&pFormatCtx, "rtmp://xxx.xxx.87.58/e/mystream", NULL, 0, NULL);的返回值始终是负数,我的config.sh文件是这样的#!/bin/bash
    PREBUILT=${NDK_ROOT}/toolchains/arm-linux-androideabi-4.8/prebuilt/windows
    PLATFORM=android-18
    ARCH=--arch=arm
    ./configure \
    ${ARCH} \
    --target-os=linux --enable-cross-compile --cross-prefix=${PREBUILT}/bin/arm-linux-androideabi- \
    --extra-cflags=" -fPIC -DANDROID -std=c99 " \
    --enable-version3 \
    --enable-gpl \
    --enable-nonfree \
    --disable-stripping \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffserver \
    --disable-ffprobe \
    --disable-encoders \
    --enable-demuxer=rtsp \
    --disable-devices \
    --enable-protocols \
    --enable-protocol=tcp \
    --enable-avfilter \
    --enable-network \
    --enable-decoder=h264 \
    --disable-avdevice \
    --disable-asm \
    --enable-neon \
    --enable-armv5te \
    --sysinclude=${NDK_ROOT}/platforms/${PLATFORM}/arch-arm/usr/include \
    --extra-ldflags="-Wl,-rpath-link=${NDK_ROOT}/platforms/${PLATFORM}/arch-arm/usr/lib -L${NDK_ROOT}/platforms/${PLATFORM}/arch-arm/usr/lib -nostdlib ${NDK_ROOT}/platforms/${PLATFORM}/arch-arm/usr/lib/crtbegin_static.o ${NDK_ROOT}/platforms/${PLATFORM}/arch-arm/usr/lib/crtend_android.o -lc -lm -ldl "
    protocol跟network我都有打开啊,./config.sh的时候我看了一下提示
    install prefix            /usr/local
    source path               .
    C compiler                D:\android-ndk\android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/windows/bin/arm-linux-androideabi-gcc
    ARCH                      c (generic)
    big-endian                no
    runtime cpu detection     no
    debug symbols             yes
    strip symbols             no
    optimize for size         no
    optimizations             yes
    static                    yes
    shared                    no
    postprocessing support    yes
    new filter support        yes
    network support           no
    network support是no不是yes
    是不是还有什么地方要设置,期待大婶来解答一下,感觉CSDN安卓板块的人好少啊
      

  4.   

    在工程中加入<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
        <uses-permission android:name="android.permission.INTERNET"/>另外直接修改config.h跟config.mak文件中的network 还有rtmp协议,全部都打开或者设置成1
    编译以后导入工程
    av_open_input_file(&pFormatCtx, "rtmp://xxx.xxx.87.58/e/mystream", NULL, 0, NULL);还是出错,返回值始终是-5但是我的网络视频是好的,路径没有问题,用其他软件都能看
      

  5.   


    av_register_all();// 初始化 libavformat和注册所有的muxers、demuxers和protocols
    avformat_network_init();
        LOGE("Registered formats");
    err = avformat_open_input(&pFormatCtx, "rtmp://xxx.xxx.87.58/e/mystream", NULL, NULL);
        LOGE("Called open file");
        if(err!=0) {
            LOGE("Couldn't open file %d",err);
            return;
        }
        LOGE("Opened file");
      

  6.   

    问题解决了吗?我最近也在做这方面的东西,不过我移植的是VLC-Android,现在能播放rtmp流,就是延迟比较长,大概有5s左右。咱俩可以交流一下。QQ:56431858