ffmpeg

[FFmpeg万能音频播放器]解码音频数据(三)

徘徊边缘 提交于 2020-10-22 08:55:04
注意本文代码是在 https://blog.csdn.net/we1less/article/details/109096144 的基础上写的。 mainxml <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" > <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="run"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="开始" android:onClick="begin"/> </LinearLayout> mainactivity package com.example.godvmusic; import

使用ffmpeg写个监控nvs软件

被刻印的时光 ゝ 提交于 2020-10-22 04:11:41
有个环境有几个网络摄像头。本来一直用厂家软件nvs,一直都很好。今天打算用老旧的机器(xp sp2)来运行nvs,发现系统dll的入口点定位失败。软件不兼容sp2.蛋疼了啊。又不想升级sp3.无奈动手写一个采集软件吧。 核心软件就是ffmpeg. 通过抓包找到了摄像头的rtsp地址。接下来就简单了。写个程序,一个摄像头对应一个采集线程。线程里调用ffmpeg 命令打开rtsp并采集数据保存到对应目录。采集频率设置为2分钟保存一个视频。 为了跟原版软件一样,保存视频的目录要按每天日期存放。日期目录下又有cam1 cam2 cam3对应的摄像头目录。分别保存。算法不难,就是先判断是否存在目录,再调用mkdir命令。 由于是后台工作的软件,也不打算增加监控预览了。只需要默默的后台采集。 经过几天的运行测试,没有什么bug.完美。收工! ..等有空再写磁盘快满了,清理旧文件。 来源: oschina 链接: https://my.oschina.net/simawei/blog/4272677

Qt音视频开发36-USB摄像头解码qcamera方案

梦想与她 提交于 2020-10-18 10:48:06
一、前言 除了监控专用的摄像头以外,有一些应用场景用的还是USB摄像头,甚至还有一些单片机或者开发板上用的CMOS摄像头,而Qt在嵌入式领域应用相当广,所以用Qt来读取加载显示USB摄像头和CMOS摄像头,也是非常多Qter做过的事情,qt本身就封装了qcamera类,专用于本地摄像头的读取显示,这个类主要是在windows系统和安卓系统比较好使,在嵌入式上歇菜,而且安卓上widget的qcamera也不好使,要用qml的camera才好使,所以开发人员很多时候,就是在找坑填坑,找到一种最佳的适中方案,比如我自己做过的一个手机app,需要调用手机的摄像头,前置后置还要能切换,抓图做一些处理,用的就是qml嵌入到widget,通过信号槽来通信。 用Qt来加载USB摄像头解码,主要就三种方案,一种是Qt自带的,一种是ffmpeg来处理,一种是v4l2框架,每种方案都各自有优缺点和对应的应用场景,比如Qt自带的就非常适合windows下的只需要显示摄像头的场景,代码简单Qt内置使用方便,如果是需要拿到每张图片自己还要做分析处理比如人脸识别啥的,用ffmpeg是最好的,速度快资源占用低,可以自己GPU绘制,爽得很,如果是嵌入式linux的话,那用v4l2框架处理是最适合的,原生的通用api框架。 QCamera方案处理流程: 实例化QCamera对象

[FFmpeg万能音频播放器]android CMake项目准备阶段(一)

大憨熊 提交于 2020-10-17 10:22:39
1.新建c++项目 2.配置NDK路径 这里建议配置NDK版本为:android-ndk-r15c 3.在SNKtool下安装CMake 4.新建Module 并且添加Module (这个module主要用来加载库与写jni) new ->Module FIle ->ProjectStructure 5.在新建的module中写Demo 也就是jni的java通信类 package com.example.myplayer; public class Demo { static { System.loadLibrary("native-lib"); System.loadLibrary("avutil"); System.loadLibrary("swresample"); System.loadLibrary("avcodec"); System.loadLibrary("avformat"); System.loadLibrary("swscale"); System.loadLibrary("postproc"); System.loadLibrary("avfilter"); System.loadLibrary("avdevice"); } public native String stringFromJNI(); public native String