<div dir="ltr">Dear all,<div><br></div><div>I have a problem with my ffmpeg-android integration. Briefly, this is what I have done yet. This is my directory structure:</div><div><br></div><div>----</div><div>---- ffmpeg-3.2.9</div><div>----x264</div><div>----ffmpeg-build</div><div>     |</div><div>     --------- lib</div><div>     ----------include</div><div>     ----------share</div><div>     ----------bin</div><div><br></div><div>1- I have compiled libx264 for x86, x86_64,  mips, arm and arm64 architectures  </div><div>This is my script for arm64 </div><div><br></div><div><div><font size="1">NDK=$HOME/Android/ndk<br></font></div><div><font size="1">PLATFORM=$NDK/platforms/android-18/arch-arm</font></div><div><font size="1">TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt</font></div><div><font size="1">PREFIX=../ffmpeg-build/arm</font></div><div><font size="1">function build_arm</font></div><div><font size="1">{</font></div><div><font size="1">  ./configure \</font></div><div><font size="1">  --prefix=$PREFIX \</font></div><div><font size="1">  --enable-static \</font></div><div><font size="1">  --enable-pic \</font></div><div><font size="1">  --host=arm-linux \</font></div><div><font size="1">  --cross-prefix=$TOOLCHAIN/linux-x86_64/bin/arm-linux-androideabi- \</font></div><div><font size="1">  --sysroot=$PLATFORM</font></div><div><font size="1"><br></font></div><div><font size="1">  make clean</font></div><div><font size="1">  make</font></div><div><font size="1">  make install</font></div><div><font size="1">}</font></div><div><span style="font-size:x-small">build_arm</span><br></div><div><font size="1"><br></font></div><div>as a result, i get libx264.a in ffmpeg-build/lib folder and two header files in include folder. Then I go for compiling ffmpeg. I have manipulated ffmpeg-3.2.9/configure to make shared .so files suitable in Android. </div><div><div><font size="1"><br></font></div><div><br></div><div><font size="1">NDK=$HOME/Android/ndk</font></div><div><font size="1">PLATFORM=$NDK/platforms/android-18/arch-arm/</font></div><div><font size="1">PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64</font></div><div><font size="1"><br></font></div><div><font size="1">GENERAL="\</font></div><div><font size="1">--enable-small \</font></div><div><font size="1">--enable-cross-compile \</font></div><div><font size="1">--extra-libs="-lgcc" \</font></div><div><font size="1">--arch=arm \</font></div><div><font size="1">--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \</font></div><div><font size="1">--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \</font></div><div><font size="1">--nm=$PREBUILT/bin/arm-linux-androideabi-nm \</font></div><div><font size="1">--extra-cflags="-I../ffmpeg-build/armeabi/include" \</font></div><div><font size="1">--extra-ldflags="-L../ffmpeg-build/armeabi/lib" "</font></div><div><font size="1"><br></font></div><div><br></div><div><font size="1">function build_ARMv7</font></div><div><font size="1">{</font></div><div><font size="1">  ./configure \</font></div><div><font size="1">  --target-os=linux \</font></div><div><font size="1">  --prefix=./android/armeabi-v7a \</font></div><div><font size="1">  ${GENERAL} \</font></div><div><font size="1">  --sysroot=$PLATFORM \</font></div><div><font size="1">  --enable-shared \</font></div><div><font size="1">  --disable-static \</font></div><div><font size="1">  </font><span style="font-size:x-small">--enable-gpl \</span></div><div><span style="font-size:x-small">--enable-libx264 \</span></div><div><font size="1">  --extra-cflags="-DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300" \</font></div><div><font size="1">  --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" \</font></div><div><font size="1">  --enable-zlib \</font></div><div><font size="1">  ${MODULES} \</font></div><div><font size="1">  --disable-doc \</font></div><div><font size="1">  --enable-neon</font></div><div><font size="1"><br></font></div><div><font size="1">  make clean</font></div><div><font size="1">  make</font></div><div><font size="1">  make install</font></div><div><font size="1">}</font></div><div><span style="font-size:x-small">build_ARMv7</span><br></div><div><br></div></div><div>Then I get .so files and include folders in ffmpeg-build. I have copied the resulted so files in my jniLib and included them in cmake file. Everything go nice but when I want to open AVCODEC_ID_H264 codec, say,</div><div><br></div><div><pre style="color:rgb(0,0,0);font-family:"DejaVu Sans Mono";font-size:9pt">codec = avcodec_find_encoder(<span style="color:rgb(102,14,122);font-weight:bold;font-style:italic">AV_CODEC_ID_H264</span>);<br></pre><pre style="color:rgb(0,0,0);font-family:"DejaVu Sans Mono";font-size:9pt"><br></pre><pre style="color:rgb(0,0,0);font-family:"DejaVu Sans Mono";font-size:9pt">it can't open h264 codec. </pre><pre style="color:rgb(0,0,0);font-family:"DejaVu Sans Mono";font-size:9pt">Where I have done this </pre><pre style="color:rgb(0,0,0);font-family:"DejaVu Sans Mono";font-size:9pt">Best,</pre><pre style="color:rgb(0,0,0);font-family:"DejaVu Sans Mono";font-size:9pt">Davood Falahati</pre></div><div><br></div>
</div></div>