android-ffmpeg-java-demo

说明

以前一直希望可以做一个播放器,所以当时就接触了ffmpeg这个库,当时打算使用JNI的方式进行底层的调用,无奈整个逻辑比较麻烦,因此进度一再搁浅。

后来进一步的了解中发现,其实对于视频的处理,方法是很多的

直接以C的代码进行处理,调用ffmpeg库的函数

JAVA在命令行调用C的程序进行处理,调用ffmpeg程序

经过一段时间的探索,对于ffmpeg的交叉编译已经没什么大问题了,那么我们就来使用这个库吧。

这个demo主要演示,通过JAVA在命令行调用FFMPEG的二进制程序来完成一些视频的处理功能。这个ffmpeg的二进制程序是在交叉编译的过程中生成的。使用的java wrapper是guardianproject's android-ffmpeg-java,当然我自己有做一些优化,比如使用我自己编译的最新的ffmpeg替换了它原版使用的ffmpeg程序,开发环境也换到了android studio,还添加了一些方法的实现。

视频剪切

原理:JAVA开启一个命令行,在命令行中调用ffmpeg的程序,根据传入的参数进行相关处理。

ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4

* -ss 指定从什么时间开始

* -t 指定需要截取多长时间

* -i 指定输入文件

视频合并

原理:JAVA开启一个命令行,在命令行中调用ffmpeg的程序,根据传入的参数进行相关处理。

//进行视频的合并

ffmpeg -f concat -i list.txt -c copy concat.mp4

java ffmpeg 合并视频_android ffmpeg视频剪切与合并相关推荐

  1. FFmpeg:视频转码、剪切、合并、播放速调整

    安装 去官网按提示安装即可,支持三大操作系统.唯一要吐槽的是,Ubuntu 14.04 等较新的版本,从默认软件列表里移除了 ffmpeg,转而支持 libav,可是 libav 又没弄好,很难用-- ...

  2. 用ffmpeg进行音频格式转换、剪切、合并、音量调整等

    为什么网上一大堆类似文章,我还要再发一篇?主要是,ffmpeg是分版本的,在一个版本上能用的,在另外一个版本上,未必能用. 这里发布的命令行,在ffmpeg version 5.1-full_buil ...

  3. python ffmpeg剪辑视频_用ffmpeg快速剪切和合并视频

    如果直接找视频剪切和合并视频的软件,通常出来的都是大的视频编辑软件或者是有图形界面的剪切软件,大型一点的功能太多安装麻烦,小型一点的功能可能不齐全. 只是简单的剪切或者一下合并一下,还是ffmpeg这 ...

  4. FFmpeg合并音频文件和视频文件

    在做项目时遇到一个需求:制作视频,即用户点击上传按钮能够上传本地视频,同时系统提供配BGM的功能(BGM)由后台提供. 当刚接到这个需求的时候,我整个人都是懵的,制作视频?这不是新媒体做的吗,不会啊, ...

  5. ffmpeg——同时剪辑多个视频并合并

    关于ffmpeg的介绍可以参看:FFMPEG视音频编解码零基础学习方法 官网:https://ffmpeg.org/download.html 目录 基本语法 功能需求 代码实现 效果展示 基本语法 ...

  6. FFMPEG MKV转换为MP4以及视频分割和合并

    mkv转换为mp4 ffmpeg -i "test.mkv" -vcodec copy -acodec aac 'test.mp4' 分割命令: ffmpeg -ss 00:00: ...

  7. 使用ffmpeg根据开始和结束时间剪切视频

    本文翻译自:Cutting the videos based on start and end time using ffmpeg I tried to cut the video using the ...

  8. 使用FFMpeg合并bilibili缓存的视频文件

    首先下载FFMpeg并配置环境变量 下载链接: https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z 下载后解压文件到指定目录下,并配置环境变量& ...

  9. ffmpeg合并M3U8加密的视频 ts 合并为 mp4

    文章引用于 ffmpeg 合并 m3u8 ts key 文件 解决 Invalid data found when 错误 如果文件没加密,可以直接用 ffmpeg -i xxx.m3u8 -vcode ...

最新文章

  1. R语言ggplot2可视化使用ggridges包可视化山脊图(Ridgeline Plots):山脊图(Ridgeline Plots)应用场景、受试者口服茶碱的之后观察茶碱的浓度变化的山脊图
  2. 80行代码搞定某电影网站所有的下载资源
  3. oracle 三表关联更新_Oracle数据库入门
  4. sturct stat 结构体中 st_mode 的含义
  5. jq 自动滑动轮换(向后插入小块)
  6. 阻止事件冒泡——商品编辑
  7. pvrect r语言 聚类_R语言常用统计方法包+机器学习包(名称、简介)
  8. linux用户怎么归纳到组,Linux用户和组命令总结
  9. Flash AS3.0中文帮助下载
  10. infobright与mysql_infobright与mysql常规引擎使用对比
  11. ECSHOP源码分析
  12. 支付:在线支付功能的概述
  13. 《编程珠玑》课后答案
  14. (SWAT-1)SWAT进行流域提取
  15. arm开发板与PC通讯及访问外网
  16. Win11退Win10/重装Win10教程
  17. 发现自己水平很欠缺!
  18. uniapp 微信云开发静态网站和云函数跳转小程序
  19. 近似值怎么用计算机,用计算器进行近似计算.docx
  20. 成都拓嘉启远:拼多多上产品清单的条件

热门文章

  1. fiq中断的入口地址,是什么FIQ和IRQ中断系统之间的区别?
  2. 培训班出身需隐瞒经历吗?商业项目经验怎样写?程序员面试准备大盘点
  3. 用Python实现SPC统计过程控制
  4. 【调剂】西安工程大学2021年硕士研究生招生调剂公告
  5. problem中Project'xxx'is missing required library:'[路径]\XXX.jar'解决方法以及关闭Myeclipse自动更新
  6. 关于word自动换页的问题,不希望标题后面的文字自动换页
  7. 《清醒思考的艺术》读书笔记
  8. “短信轰炸”克星 ,“无感”AI立体防御完美解决方案
  9. hadoopHA部分文件和配置
  10. opencv 压缩程序格式解析