{"id":1571,"date":"2024-09-18T07:31:55","date_gmt":"2024-09-18T07:31:55","guid":{"rendered":"http:\/\/www.recologypower.com:9080\/?p=1571"},"modified":"2024-09-18T07:31:56","modified_gmt":"2024-09-18T07:31:56","slug":"%e3%80%90ffmpeg%e3%80%91%e4%b8%89%e3%80%81linux%e7%bc%96%e8%af%91ffmpeg-so%e5%a4%9a%e6%9e%b6%e6%9e%84%e7%bc%96%e8%af%91%e3%80%90f","status":"publish","type":"post","link":"http:\/\/www.recologypower.com:9080\/?p=1571","title":{"rendered":"\u3010ffmpeg\u3011\u4e09\u3001linux\u7f16\u8bd1ffmpeg.so\u591a\u67b6\u6784\u7f16\u8bd1\u3010f"},"content":{"rendered":"\n<p>\u524d\u8a00\uff1a\u5728\u524d\u4e24\u7ae0\u5df2\u7ecf\u4ecb\u7ecd\u4e86\uff0c\u5982\u4f55\u8fdb\u884c\u7f16\u8bd1ffmpeg.so\u7684\u4e00\u4e2a\u5b8c\u6574\u8fc7\u7a0b\u3002\u4f46\u662f\u90fd\u662f\u57fa\u4e8e\u4e00\u4e2a\u67b6\u6784\u7f16\u8bd1\u7684\uff0c\u672c\u6587\u4ecb\u7ecd\u4e00\u4e2ash\u811a\u672c\u540c\u65f6\u7f16\u8bd1\u51fa\u53cc\u67b6\u6784\u7684\u65b9\u6cd5\uff0c\u4f7f\u7f16\u8bd1\u8fc7\u7a0b\u66f4\u52a0\u65b9\u4fbf\u548c\u9ad8\u6548\u3002<\/p>\n\n\n\n<p>\u76ee\u524dandroid\u7aef\u5e38\u7528\u7684\u67b6\u6784\u6709\u4e24\u4e2a\uff1a<\/p>\n\n\n\n<p>arm64-v8a\uff1a\u5305\u542b32\u4f4d\u548c64\u4f4d\u6267\u884c\u72b6\u6001<\/p>\n\n\n\n<p>armeabi-v7a\uff1a\u53ea\u5305\u542b32\u4f4d\u6267\u884c\u72b6\u6001\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u4e00\u3001\u7f16\u5199\u811a\u672c<\/strong><\/h2>\n\n\n\n<p>\u5728\u524d\u51e0\u7bc7\u6587\u7ae0\u4e2d\u7684ffmpeg-4.2.2\u6e90\u7801\u76ee\u5f55\u4e0b\u65b0\u5efa\u4e00\u4e2a\u7f16\u8bd1\u811a\u672c\uff1abuild_android_v8v7.sh\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\r\nmake clean\r\n#\u53d8\u91cf\u5b9a\u4e49\uff0c\u53d8\u91cf\u524d\u9762\u7684export\u53ef\u8981\u53ef\u4e0d\u8981\uff0c\u5982export API\r\nAPI=21\r\nNDK=\/home\/liuzihui\/softwaresCus\/ndkr21\/android-ndk-r21e\r\nTOOLCHAIN=$NDK\/toolchains\/llvm\/prebuilt\/linux-x86_64\r\nSYSROOT=$TOOLCHAIN\/sysroot\r\nADDITIONAL_CONFIGURE_FLAG=\"--enable-avdevice --enable-avcodec --enable-avformat --enable-swresample --enable-swscale --enable-postproc --enable-avfilter\"\r\nfunction build_android {\r\n  echo \"===========================1========================\"\r\n  .\/configure \\\r\n  --prefix=$OUTPUT \\\r\n  --target-os=android \\\r\n  --arch=$ARCH \\\r\n  --cpu=$CPU \\\r\n  --enable-asm \\\r\n  --enable-neon \\\r\n  --enable-cross-compile \\\r\n  --enable-shared \\\r\n  --disable-static \\\r\n  --disable-doc \\\r\n  --disable-ffplay \\\r\n  --disable-ffprobe \\\r\n  --disable-symver \\\r\n  --disable-ffmpeg \\\r\n  --sysroot=$SYSROOT \\\r\n  --cross-prefix=$CROSS_PREFIX \\\r\n  --cc=$CC \\\r\n  --cxx=$CXX \\\r\n  --extra-cflags=\"-fPIC\" \\\r\n  $ADDITIONAL_CONFIGURE_FLAG\r\n  echo \"===========================2=====================\"\r\n  make clean\r\n  echo \"=============================${CC}===============\"\r\n  make -j4\r\n  make install\r\n}\r\n \r\n#arm64-v8a\r\nARCH=arm64\r\nCPU=armv8-a\r\nOUTPUT=\/home\/liuzihui\/softwaresCus\/ffmpegSource\/ffmpeg-4.2.2\/android\/$CPU\r\nCROSS_PREFIX=$TOOLCHAIN\/bin\/aarch64-linux-android-    #AR AS LD\u7b49\u901a\u7528\r\nCC=$TOOLCHAIN\/bin\/aarch64-linux-android$API-clang     #CC\u5355\u72ec\u6307\u5b9a\uff0c\u975e\u901a\u7528(\u56e0\u4e3andk\u4e2dCC\u4e0eAR\u8def\u5f84\u4e0d\u540c\uff0c\u540e\u540c\u7406)\r\nCXX=$TOOLCHAIN\/bin\/aarch64-linux-android$API-clang++  #CXX\u5355\u72ec\u6307\u5b9a\uff0c\u975e\u901a\u7528\r\nbuild_android\r\n \r\n#armeabi-v7a\r\nARCH=arm\r\nCPU=armv7-a\r\nOUTPUT=\/home\/liuzihui\/softwaresCus\/ffmpegSource\/ffmpeg-4.2.2\/android\/$CPU\r\nCROSS_PREFIX=$TOOLCHAIN\/bin\/arm-linux-androideabi-       #AR AS LD\u7b49\u901a\u7528\r\nCC=$TOOLCHAIN\/bin\/armv7a-linux-androideabi$API-clang     #CC\u5355\u72ec\u6307\u5b9a\uff0c\u975e\u901a\u7528\r\nCXX=$TOOLCHAIN\/bin\/armv7a-linux-androideabi$API-clang++  #CXX\u5355\u72ec\u6307\u5b9a\uff0c\u975e\u901a\u7528\r\nbuild_android\r\n \r<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u4e8c\u3001\u6267\u884c\u811a\u672c<\/strong><\/h2>\n\n\n\n<p>\u5728\u524d\u51e0\u7bc7\u6587\u7ae0\u4e2d\u7684ffmpeg-4.2.2\u6e90\u7801\u76ee\u5f55\u4e0b\uff0c\u7ec8\u7aef\u547d\u4ee4\uff1a\u8d4b\u4e88\u811a\u672c\u6743\u9650\u548c\u6267\u884c\u811a\u672c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x build_android_v8v7.sh\r\n.\/build_android_v8v7.sh<\/code><\/pre>\n\n\n\n<p>\u7b49\u5f85\u51e0\u5206\u949f\uff0c\u7136\u540e\u4f1a\u5728ffmpeg-4.2.2\u6e90\u7801\u76ee\u5f55\u4e0b\u81ea\u52a8\u751f\u6210android\u76ee\u5f55\u548c\u91cc\u9762\u7684\u5185\u5bb9\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"560\" height=\"261\" src=\"http:\/\/www.recologypower.com:9080\/wp-content\/uploads\/2024\/09\/image-6.png\" alt=\"\" class=\"wp-image-1573\" srcset=\"http:\/\/www.recologypower.com:9080\/wp-content\/uploads\/2024\/09\/image-6.png 560w, http:\/\/www.recologypower.com:9080\/wp-content\/uploads\/2024\/09\/image-6-300x140.png 300w\" sizes=\"(max-width: 560px) 100vw, 560px\" \/><\/figure>\n\n\n\n<p>\u540e\u8bb0\uff1a\u672c\u6b21\u7f16\u8bd1\u6ca1\u6709\u4f7f\u7528so\u7684\u88c1\u526a\uff08\u4e0a\u4e00\u7bc7\u5df2\u7ecf\u8bb2\u8fc7\uff09\uff0c\u4f7f\u7528\u751f\u6210\u9ed8\u8ba4\u7684\u5168\u91cf\u5305\uff08\u5373\u751f\u6210\u4e867\u4e2aso\uff09\u7684\u65b9\u5f0f\u7f16\u8bd1\u7684\uff0c\u540e\u9762\u7684\u6587\u7ae0\u5c06\u8bb2\u8ff0\u5982\u4f55\u5408\u5e76\u8fd97\u4e2aso\u6587\u4ef6\u3002<\/p>\n\n\n\n<p>\u6ce8\u610f\uff1a\u82e5\u60f3\u81ea\u884c\u88c1\u526a\uff0c\u53ef\u4ee5\u53c2\u7167\u4e0a\u4e00\u7ae0\u4ecb\u7ecd\uff0c\u4fee\u6539\u672c\u6b21\u811a\u672c\u4e2d\u7684\u81ea\u5b9a\u4e49\u53d8\u91cf ADDITIONAL_CONFIGURE_FLAG \u91cc\u9762\u7684\u4e00\u4e9benable\u548cdisable\u5c5e\u6027\u8fdb\u884c\u529f\u80fd\u6a21\u5757\u7684\u914d\u7f6e\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"slide-text-bg2\">\n<h3>\u524d\u8a00\uff1a\u5728\u524d\u4e24\u7ae0\u5df2\u7ecf\u4ecb\u7ecd\u4e86\uff0c\u5982\u4f55\u8fdb\u884c\u7f16\u8bd1f<\/h3>\n<\/div>\n<div class=\"flex-btn-div\"><a href=\"http:\/\/www.recologypower.com:9080\/?p=1571\" class=\"btn1 flex-btn\">\u9605\u8bfb\u66f4\u591a<\/a><\/div>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[154],"tags":[],"_links":{"self":[{"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/posts\/1571"}],"collection":[{"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1571"}],"version-history":[{"count":1,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/posts\/1571\/revisions"}],"predecessor-version":[{"id":1574,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/posts\/1571\/revisions\/1574"}],"wp:attachment":[{"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1571"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}