x264

iTOP-iMX6ULL开发板-FFmpeg移植

感情迁移 提交于 2020-10-04 00:44:55
本章节使用的资料已经放到了开发板网盘资料中,路径为:11_ Linux 系统开发进阶\98_章节使用资料。 FFmpeg(Fast Forward Mpeg)是一种可以用来记录、转换数字音频、视频,并能将其转化为流的多 媒体视频处理工具,拥有视频采集功能、视频格式转换、视频抓图等功能。本文档介绍如何将 ffmpeg 移植 到 ARM 平台。 开发板使用迅为i.MX6ULL终结者和 USB 免驱摄像头,交叉编译工具为arm-linux-gnueabihf,yocto Qt5 文件系统。 98.1 编译 x264 获取 x264 源码,可以从网站 http://www.videolan.org/developers/x264.htm 下载,进入如图 98.1.1 界 面,点击下载;或者用我们已经下载压缩包(与文档同一目录下的 x264-master.tar.bz2); 将压缩包放到 ubuntu 并解压,tar -vxf x264-master.tar.bz2 ,创建文件夹_x264_install 用来存放编译后 生成的文件,mkdir _x264_install: 进入解压后的路径 x264-master,执行以下命令: ./configure --enable-shared --prefix=/home/ubuntu/work/ffmpeg/_x264_install/ -

FFmpeg移植-迅为IMX6ULL开发板

大兔子大兔子 提交于 2020-09-26 04:28:47
FFmpeg(Fast Forward Mpeg)是一种可以用来记录、转换数字音频、视频,并能将其转化为流的多媒体视频处理工具,拥有视频采集功能、视频格式转换、视频抓图等功能。本文介绍如何将ffmpeg移植到 ARM 平台。 开发板使用迅为i.MX6ULL终结者和 USB 免驱摄像头,交叉编译工具为arm-linux-gnueabihf,yocto Qt5文件系统。 1.编译x264获取x264源码,可以从网站 http://www.videolan.org/developers/x264.htm 下载,进入如图1.1界面,点击下载;或者用我们已经下载压缩包(与文档同一目录下的x264-master.tar.bz2); 将压缩包放到ubuntu并解压,tar -vxf x264-master.tar.bz2 ,创建文件夹_x264_install用来存放编译后生成的文件,mkdir _x264_install: 进入解压后的路径x264-master,执行以下命令:./configure --enable-shared --prefix=/home/ubuntu/work/ffmpeg/_x264_install/ --host=arm-linux-gnueabihf --disable-asm 参数说明: --prefix=/home/ubuntu/work/ffmpeg/

FFmpeg的基本组成(一)

孤者浪人 提交于 2020-08-18 05:14:11
1.FFmpeg的基本组成 FFmpeg 框架的基本组成包含 AVFormat 、 AVCodec 、 AVFilter 、 AVDevice 、 AVUtil 等模块库。 下面针对这些模块做一个大概的介绍。 (1)FFmpeg的封装模块AVFormat AVFormat 中实现了目前多媒体领域中的绝大多数媒体封装格式,包括封装和解封装,如: MP4 、 FLV 、 KV 、 TS 等 文件封装格式 , RTMP 、 RTSP 、 MMS 、 HLS 等 网络协议封装格式 。 FFmpeg 是否支持某种媒体封装格式,取决于编译时是否包含了该格式的封装库。根据实际需求,可进行媒体封装格式的扩展,增加自己定制的封装格式,即在 AVFormat 中增加自己的封装处理模块。 (2)FFmpeg的编解码模块AVCodec AVCodec 中实现了目前多媒体领域绝大多数常用的编解码格式,既支持编码,也支持解码。 AVCodec 除了支持 MPEG4 、 AAC 、 MJPEG 等自带的媒体编解码格式之外,还支持第三方的编解码器,如: H.264(AVC) 编码,需要使用x264编码器; H.265(HEVC) 编码,需要使用x265编码器; MP3(mp3lame) 编码,需要使用 libmp3lame 编码器。 如果希望增加自己的编码格式,或者硬件编解码,则需要在 AVCodec

移动直播技术秒开优化经验

白昼怎懂夜的黑 提交于 2020-08-17 00:47:26
转自: https://www.toutiao.com/i6278412629417394689 徐立,七牛创始合伙人兼产品副总裁,负责七牛直播云的整体研发,是国内 Go / Docker / Container 技术早期布道者,Go / Containers / Distributed Systems 技术的忠实爱好者和实践者。曾合著国内第一本 Go 语言图书《Go 语言编程》,翻译《Go 语言程序设计》。 现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。 直播常见的问题包括 主播在不稳定的网络环境下如何稳定推流? 偏远地区的观众如何高清流畅观看直播? 直播卡顿时如何智能切换线路? 如何精确度量直播质量指标并实时调整? 移动设备上不同的芯片平台如何高性能编码和渲染视频? 美颜等滤镜特效处理怎么做? 如何实现播放秒开? 如何保障直播持续播放流畅不卡顿? 本次分享将为大家揭开移动直播核心技术的神秘面纱。 视频、直播等基础知识 什么是视频? 首先我们需要理解一个最基本的概念:视频。从感性的角度来看,视频就是一部充满趣味的影片,可以是电影,可以是短片,是一连贯的视觉冲击力表现丰富的画面和音频。但从理性的角度来看,视频是一种有结构的数据,用工程的语言解释

转载:SRT传输库评估报告(V1.0.0)

有些话、适合烂在心里 提交于 2020-08-10 17:58:54
原文地址: https://blog.csdn.net/mediapro/article/details/105790057 ,感谢大神; SRT 传输库评估报告 (V1.0.0) www.mediapro.cc SRT 传输库简介 SRT是Haivision开源的一套集FEC前向纠错、ACK、NAK选择性重传、JitterBuff、拥塞控制、传输安全保障等技术于一体的实时传输解决方案。方案基于UDP协议进行扩展,目前SRT在广电领域获得了不错的应用,因其弱网抵抗以及较好的实时性,必将取代基于TCP的RTMP伪直播方案。SRT方案使用C++开发,提供C风格接口,依赖OpenSSL\Pthreads库,官方编译脚本支持Windows、Linux、Mac\IOS系统,可自行参考移植到Android。 本文对SRT封装库SD-SRT进行测试,该封装库主要针对音视频领域需求,进行了帧码流拆分合并、丢包冻结、自动重连、EPoll收发、状态回调等功能的扩展,并对外提供简洁易用的接口,可用于内网点对点或者公网CS架构,其接口说明见附录。 希望通过本测试,加深对于SRT的传输特征、参数配置、适用场合的认识。 从官方声明可见,SRT具有以下特点: 基于ARQ(ACK+NAK),ACK机制相比TCP ACK做了一定改进,采用Full ACK和Light ACK结合的模式,其中Full

centos 7.5源码安装freeswitch 1.10.3

夙愿已清 提交于 2020-08-07 19:13:20
1、下载freeswitch安装包(freeswitch-1.10.2.-release.tar.gz) 2、安装对应依赖 yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl

Centos7安装FFmpeg

雨燕双飞 提交于 2020-07-24 18:42:23
第一部分:基础知识简介 1. FFmpeg介绍 FFmpeg是一个完整的,跨平台的解决方案,用于记录,转换和流化音视频.其中FF代表Fast Forword 2. FFmpeg的组件 包含libavcodec,libavutil,libavformat,libavfilter,libavdevice,libscale和libswresample,以及ffmpeg,ffplay和ffprobe,如图所示 [ lidengyin@ldy ~ ] $ ffmpeg --version ffmpeg version 4.1 Copyright ( c ) 2000-2018 the FFmpeg developers built with gcc 4.8.5 ( GCC ) 20150623 ( Red Hat 4.8.5-39 ) configuration: --prefix = /usr/local/ffmpeg --enable-libx264 --enable-gpl libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40

[直播一揽子]初期调研

别等时光非礼了梦想. 提交于 2020-04-11 10:26:14
这几天在调研直播的技术。虽然现在有很多“开源”的SDK,或者各个厂家的SDK。但是还是想自己去调研一下整个的直播流程/技术,并且通过代码去实现一套这样的功能。 整体规划: 看网上的文章介绍,基本上的流程是这样的:采集,编码,发送,转发,解码。我这次主要研究一下采集,编码,发送这三个客户端采集的步骤。 采集设备:Android手机摄像头采集视频,麦克风采集音频。 编码格式:音频:aac,视频:h264。 发送协议:rtmp协议。 采集方法: 摄像头采集视频的方法有两种:Camera的onPreviewFrame的回调方法,和MediaRecorder的outPut方法。经过对比,发现各有各的优缺点: Camera的onPreviewFrame方法: 优点: 可以获取到视频的原始YUV数据。 使用简单:直接设置一个回调方法就能够获取到预览时的视频数据。 缺点: 需要自己将YUV数据编码为h264格式,对编码需要一定的了解。 MediaRecorder的outPut方法: 优点: 可以直接获取到编码后的h264格式的视频帧数据。 缺点: 获取部分的代码比较麻烦:需要在程序内部架设socket服务来获取h264视频数据。 在各有优缺点的情况下,通过对比其他现有的直播SDK的功能,最终采用了Camera的onPreviewFrame的方法。众所周知,美颜功能已经是目前直播的主要功能点之一

ffmpeg安装第三方编码器(encoder)库,ffmpeg编码h264

三世轮回 提交于 2020-04-10 12:43:07
ffmpeg安装第三方编码器(encoder)库 关键词:ffmpeg、编码h264、第三方encoder 安装好了ffmpeg后,如果你使用ffmpeg工具去把某个视频文件转成h264视频编码、mp3音频编码or其他ffmpeg自身不带的xxx编码类型,就会看到报错信息,unknown encoder 'xxx'。此刻你需要的只要去安装其他的编码器就行了,本质上其实是把其他的编码器以库的形式安装好,例如,把正确的libx264.so or libx264.a存放在/usr/lib下 or /usr/local/lib下。 举两个例子吧,视频方面的编码器就拿h264来说,音频方面的例子就拿mp3(mp3lame)来说。 扫盲,Linux下安装一个正规的软件,一般都是三部曲,①、【./configure】(加一些可能的参数,比如enable一些功能,disable一些功能,究竟有哪些功能可以开启和关闭呢?一般通过./configure --help命令来查询),②、【make】(编译),③、【sudo make install】(把生成的二进制应用程序文件和.so和.a复制到/usr/local/下) 一、h264 动手搜一下ffmpeg的工程代码库,会发现每个codec都有一下几个成员变量,但是有好几个codec缺少encoder,h264就是其中一个了。先不管什么原因