2019独角兽企业重金招聘Python工程师标准>>>

目标问题

  1. 对于jpeg的编码为什么不用libjpeg而是用mpeg(没错就是这电影老古董格式)里代码?

    其实发现就连wmv等等一些平时用不着的破东西,都是和mpeg老古董共用一套代码。jpeg和mpeg没什么关系吧?overhead不大吗?

  2. 为什么mjpeg(就是连续的jpeg)编码输出时,编码第N+1副图时才真正的输出第N幅图的jpeg编码结果?

  3. 每得到一副原图输入数据,那么内存就似乎被copy到新内存,然后废弃,巨大的图片的时候,这种copy很浪费CPU,如何让他不要copy而是直接用原始内存。反正一幅幅图来也不着急,干嘛要copy 呢。

先编一个android里用的ffmpeg命令行,要debug版的,关键是configure时加上

--enable-debug --disable-stripping

例如:

从NDK里准备一个标准的gcc tool chain以便后面的跨平台编译。

echo ---------------make standard GCC Tool Chain from Android NDK--------------------
ls -d ./std_toolchain && { echo ./std_toolchain already exist; exit 0; }printenv ANDROID_NDK_ROOT > /dev/null || { echo please export ANDROID_NDK_ROOT=root_dir_of_your_android_ndk; exit 1; }PLATFORM=$(basename $(ls -d $ANDROID_NDK_ROOT/platforms/android-8)); test -z $PLATFORM && exit 1
TOOLCHAIN=$(basename $(ls -d $ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-[4-5].* | tail -n 1)); test -z $TOOLCHAIN && exit 1
WORK_SYSTEM=$(basename $(ls -d $ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-[4-5].*/prebuilt/* | tail -n 1)); test -z $WORK_SYSTEM && exit 1
$ANDROID_NDK_ROOT/build/tools/make-standalone-toolchain.sh --install-dir=./std_toolchain --platform=$PLATFORM --toolchain=$TOOLCHAIN --system=$WORK_SYSTEM --arch=arm --verboseecho ""; echo ok; echo ""export PATH="$PWD/std_toolchain/bin:$PATH"
export CC=arm-linux-androideabi-gcc

然后到ffmpeg的源码下执行configure

./configure --enable-cross-compile --cross-prefix=arm-linux-androideabi- --target-os=linux \--arch=armv7 --cpu=armv7-a \--disable-doc --disable-ffplay --disable-ffprobe --disable-ffserver --disable-symver --enable-debug --disable-stripping --disable-everything \--enable-static \--enable-protocol=pipe \--enable-filter=scale --enable-filter=crop --enable-filter=transpose \--enable-demuxer=rawvideo --enable-decoder=rawvideo \--enable-muxer=image2 --enable-muxer=image2pipe --enable-muxer=mjpeg --enable-encoder=mjpeg

只是一个例子而已,只留下了rawvideo输入格式和mjpeg输出格式的支持。

然后make, 得到ffmpeg。

传到android的/data/local/tmp/上。

(一些更具体的准备性质的步骤参照Android native debug: 手动使用gdbserver远程调试C代码)

然后,开始启动gdbserver,

待续。

转载于:https://my.oschina.net/osexp2003/blog/469976

欠揍的ffmpeg,调试android里的ffmpeg (1)相关推荐

  1. android平台移植ffmpeg 播放器

    引用:http://blog.csdn.net/ouyangtianhan/article/details/7943543 IT行业是一个踩在巨人肩膀上前进的行业,否则做的事情不一定有意义,所以我也是 ...

  2. 解决Android平台移植ffmpeg的一揽子问题

    原文地址: http://blog.csdn.net/moruite/article/details/6305944 IT行业是一个踩在巨人肩膀上前进的行业,否则做的事情不一定有意义,所以我也是基于h ...

  3. 解决Android平台移植ffmpeg的一些问题

    转自 http://blog.csdn.net/moruite/article/details/6305944 IT行业是一个踩在巨人肩膀上前进的行业,否则做的事情不一定有意义,所以我也是基于havl ...

  4. 【Android】解决Android平台移植ffmpeg的一揽子问题

    IT行业是一个踩在巨人肩膀上前进的行业,否则做的事情不一定有意义,所以我也是基于havlenapetr移植的ffmpeg基础上做了些改进,他做的主要贡献有: 1. 移植了ffmpeg并将与媒体相关的结 ...

  5. 【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 FFmpegAndroid 框架 )

    文章目录 一.推荐开源项目 二.Android 中执行 FFMPEG 指令 1.导入依赖 2.Java 代码编写 3.使用时的代码示例 三.博客资源 一.推荐开源项目 最近需要在 Android 中进 ...

  6. android ffmpeg 优点_在Android中使用FFmpeg(android studio环境)

    1.首先我们需要一个已经编译好的libffmpeg.so文件.(怎么编译是个大坑,可以参考windows环境下编译android中使用的FFmpeg,也可以用网上下载的现成的,本文相关的github项 ...

  7. FFmpeg的Android平台移植—编译篇(验证可用)

    摘要:本文主要介绍将FFmpeg音视频编解码库移植到Android平台上的编译和基本测试过程. 环境准备: Ubuntu12.04 TLS android-ndk-r9d-linux-x86_64.t ...

  8. 基于NDK编译Android平台的FFmpeg动态库

    需求 FFmpeg在Linux平台(如Ubuntu)上的支持已经比较完善了,如前述文章介绍 http://blog.csdn.net/ericbar/article/details/73702061, ...

  9. Android交叉编译OpenCV+FFmpeg+x264的艰难历程

    前言 如果你没有兴趣看完本文,只想获得可编译的代码或编译后的产物,可以直接点击下面的链接,跟随步骤编译代码或直接下载我编译好的产物 注:编译顺序要按照 x264 -> FFmpeg -> ...

最新文章

  1. python ipaddr_python之IP地址或IP段处理模块-ipaddr
  2. python多种推导式的实现
  3. 超声换能器的原理及设计_超声波发生器、变幅杆、焊头的匹配介绍
  4. 谷歌联合 Adobe 发布 Noto 字体【免费下载】
  5. 在Javascript中闭包(Closure)
  6. RecycleView添加setEmptyView
  7. 树莓派安装摄像头、耳机、话筒
  8. 创业码农被公司套路最惨的一次经历
  9. halcon学习之图像增强、平滑和去噪
  10. 手把手教你搭建FastDFS集群(中)
  11. 金融直播三大常用场景一文解析
  12. linux下查看mysql配置文件位置
  13. 手机连接USB通过宽带免费上网
  14. 基于FPGA的遥控数字时钟设计
  15. 给网页的标签头部添加小图标方法
  16. POSIX正则表达式
  17. PowerApps 中管理本地数据网关
  18. C#:实现康托尔集cantor set算法 (附完整源码)
  19. 第五章:B视频Include包含文件
  20. FireDebug使用

热门文章

  1. C语言子函数返回二维数组讨论
  2. php 跳转网页常用方法
  3. 图解Linux命令之--dos2unix命令
  4. Map集合(超详细+源码讲解)
  5. 做PPT怎么能少了素材!(收藏的高清图片素材网站二)
  6. Linux下查看网关地址和DNS地址
  7. 手机内存不足?不要胡乱清理了,学会了让手机空间瞬间释放!
  8. 如何设计制作你的新浪微博个人封面、模版下载、个性封面下载_马立杰_新浪博客...
  9. win7开机黑屏开计算机无桌面图标任务栏
  10. java基本语法循环语句 —for循环