音视频
爱自在
这个作者很懒,什么都没留下…
展开
-
Android使用MediaCodec将YUV硬编成H264
原文地址:https://www.jianshu.com/p/9813195f89afMediaCodec原理参考Android官方:https://developer.android.com/reference/android/media/MediaCodec.htmlMediaCode编码的流程编码器初始化创建编码器codec = MediaCodec.createEncoderByType(MIME);创建媒体编码格式MediaFormat format = M转载 2021-06-24 16:25:44 · 760 阅读 · 0 评论 -
彻底弄懂YUV
总结了一下YUV的知识。原创 2021-02-04 14:10:27 · 210 阅读 · 0 评论 -
SDL2_code_play_pcm
SDL2播放pcm的代码。应该算比较精简了。该注释的都注释了~/** * * ffmpeg -i file_name.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 44100 file_name.pcm * ffmpeg -i xiongmao.flv -vn -c:a pcm_s16le -f s16le -ac 2 -ar 44100 xiongmao.pcm * */#include <SDL2/SDL.h>#define原创 2020-12-01 15:50:38 · 117 阅读 · 0 评论 -
Android音视频开发播放器总结
原文地址:https://blog.csdn.net/jun5753/article/details/81222448 android-UniversalMusicPlayer github上目前start 10K多,Google的官方播放器,demo展示了如何去开发一款音频媒体应用,该应用可跨多种外接设备使用,并为Android手机,平板电脑,Android Auto,Android Wear,Android TV和Google Cast设备提供一致的用户体验。 源码解读:Android..转载 2020-11-13 09:06:12 · 805 阅读 · 0 评论 -
基于WebRTC的低延迟视频直播
原文地址:https://xw.qq.com/cmsid/20200304A04E3A00Photo by Wendy Wei from Pexels随着直播行业的迭代更新,传统直播方案的延迟问题越发凸显。本文来自融云联合创始人、首席架构师 李淼在LiveVideoStackCon 2019深圳站中的演讲,在其中他详细介绍了如何利用WebRTC低延迟音视频传输的特点,解决传统直播方案的延迟问题。文 / 李淼整理 / LiveVideoStack融云是一家全球互联网通信云平台,主要提供即时转载 2020-11-12 17:00:52 · 2645 阅读 · 1 评论 -
交叉编译EasyRTSPClient
1. git clone https://github.com/tsingsee/EasyRTSPClient.git2. git clone https://github.com/tsingsee/Include //依赖头文件3. cp nbproject/Makefile-hisiv100.mk nbproject/Makefile-hisiv300.mk4. 修改编译器5. 在Makefile-hisiv300.mk中增加库文件的路径6. ./Builtit hisiv3007. ou原创 2020-11-11 11:32:04 · 301 阅读 · 0 评论 -
MP4文件格式的解析,以及MP4文件的分割算法
原文地址:MP4文件格式的解析,以及MP4文件的分割算法 MP4文件格式的解析,以及MP4文件的分割算法 mp4应该算是一种比较复杂的媒体格式了,起源于QuickTime。以前研究的时候就花了一番的功夫,尤其是如何把它完美的融入到视频点播应用中,更是费尽了心思,主要问题是处理mp4文件庞大的“媒体头”。当然,流媒体点播也可以采用flv格式来做,flv也可以封装H.264视频数据的,不过Adobe却不推荐这么做,人家说毕竟mp4才是H.264最佳的存储格式嘛。 这几天整理并重构了一下mp4文转载 2020-05-29 15:56:22 · 254 阅读 · 0 评论 -
RTSP再学习 -- 利用FFmpeg 将 rtsp 获取H264裸流并保存到文件中
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78214267既然已经可以通过 RTSP 获取h264 裸流了。那么通过 FFmpeg 将其保存到文件中怎么做呢?一、首先RTSP获取 h264 裸流我们上面两篇文章主要讲的是通过 rtsp://Your ip:554/stream_chn0.h265 播放H.265视频流。PS:我刚试了一下,我的 FFmpeg 程序暂时不支持 h265 ... 之前编译的时候,只提供了 x转载 2020-05-28 18:07:01 · 938 阅读 · 0 评论 -
如何让FFMPEG生成的MP4文件做到边下载边播放
原文地址:https://blog.csdn.net/zhoubotong2012/article/details/79346363一般通过FFmpeg生成的MP4文件如果没有经过特殊处理在播放的时候是要下载完整个文件才能播放,但是我们想将文件用于点播,比如放到Darwin RTSP Server的媒体目录里让访问的客户端播放,必须让它支持边下载边播放。将MP4文件转成可以逐渐播放的操作叫做“流化”,那如何对一个MP4文件进行“流化”呢?我们可以借助ffmpeg带的一个命令行工具--qt-fast.转载 2020-05-28 09:16:25 · 1732 阅读 · 0 评论 -
编译vlc-android
1. 说明时间:20191105系统:虚拟机里的ubuntu16042. 步骤2.1 配置环境JDKsudo apt-get install openjdk-8-jre openjdk-8-jdk这个不用配置环境变量NDK下载网页 https://developer.android.google.cn/ndk/downloadsNDK-R18B迅雷下吧,飞快~andro...原创 2019-11-05 11:06:47 · 778 阅读 · 0 评论 -
x264参数中文详解(X264 Settings)
转自:http://www.front2end.cn/blog/Chinese-explanation-of-x264-parameters-(X264-Settings).html解释x264命令可选项的用途和使用方法。同执行 x264 –fullhelp 显示顺序。本文主要翻译:mewiki.project357.com/wiki/X264_Settings,同时参考doom9 论坛、Si...转载 2018-07-28 14:54:47 · 1611 阅读 · 0 评论 -
TS协议解析第三部分(PES)
原文地址: https://blog.csdn.net/u013354805/article/details/51591229PES:1.1 PES介绍:PES–Packetized Elementary Streams (分组的ES),ES形成的分组称为PES分组,是用来传递ES的一种数据结构。PES流是ES流经过PES打包器处理后形成的数据流,在这个过程中完成了将ES流分...转载 2018-07-28 14:55:55 · 524 阅读 · 0 评论 -
ffmpeg与x264编码指南 转码优化
http://blog.csdn.net/vblittleboy/article/details/8982857x264是一个 H.264/MPEG4 AVC 编码器,本指南将指导新手如何创建高质量的H.264视频。对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two pass ABR。码率控制是一种决定为每一个视频帧分配多少比特数的方法,它将决定...转载 2018-07-28 14:56:33 · 3601 阅读 · 0 评论 -
ffmpeg的中文文档
原文地址: https://www.longqi.cf/tools/2015/02/13/ffmpegcn/ffmpeg的文档,把之前三个文章直接合并而成的。没有新的内容和改动。概要 ffmpeg [global_options] {[input_file_options] -i INPUT_FILE} … {[output_file_options] OUTPUT_FILE} …...转载 2018-07-28 14:57:27 · 3342 阅读 · 0 评论 -
制作mpeg2ts流时PCR_base和PCR_ext的计算方法
原文地址:https://www.xuebuyuan.com/1946444.html参考《数字电视业务信息及其编码》一文中提到的PCR计算方法,系统时钟频率以Hz为单位并需要满足一下条件27 000 000 - 540 <= 系统时钟频率 <= 27 000 000 000 + 540这里我们取系统时钟的理想值27 000 000 HzPCR分两部分编码:一个以系...转载 2018-07-27 11:05:13 · 794 阅读 · 0 评论 -
视频的帧类型与帧存储
视频的帧类型帧类型包括 I 帧:关键帧,包含完整图像。 P帧:预测帧,根据前面的I帧和P帧来还原出图像。 B帧:双向依赖帧,也就是依赖于前面和后面的帧信息。帧的显示顺序与存储顺序用一个例子来说明, 假如视频显示顺序是: 1 2 3 4 5 6 7 I B B P B B I则编码顺序是: 1 4 2 3 7 5 6 I原创 2018-04-26 13:16:36 · 3138 阅读 · 0 评论 -
使用ffmpeg保存YUV420p文件
说明基于 ffmpeg 3.4.2 和 vs2017 开发 YUV420p的存储为先Y,再U,再V。实现过程使用ffmpeg获取frame数据。 设置sws_getContext为YUV420。使用sws_scale转换数据。存储数据。示例代码代码主要部分为获取frame,转换成YUV格式,YUV数据保存。#include "stdafx.h"...原创 2018-03-09 16:01:26 · 2709 阅读 · 0 评论 -
关于YUV420
关于YUV和RGB色彩模型一样,YUV也是被发明来描述色彩的模型。类似的还有CMYK等。RGB 是使用红绿蓝三原色来描述色彩的模型。 YUV 使用亮度和色度来描述色彩的模型。 CMYK 是使用青色Cyan、品红色Magenta、黄色Yellow 来描述色彩的模型。Y:表示的是亮度。UV是色差。YUV又称YCbCr,Cb代表蓝色差量(U),Cr代表红色分量(V),Y不仅有绿分量,还叠加了亮度信息。原创 2018-03-09 14:51:45 · 1190 阅读 · 0 评论 -
SDL2.0显示YUV图片的方法
使用函数SDL_UpdateYUVTexture(texture,&rect, yuvFrame->data[0], yuvFrame->linesize[0], yuvFrame->data[1], yuvFrame->linesize[1], yuvFrame->data[2], yuvFrame->linesize[2]);SDL_UpdateYUVTexture 需要用的参数包括纹理text原创 2018-03-19 11:21:04 · 1797 阅读 · 0 评论 -
SDL2.0播放PCM
说明需要知道PCM的参数:采样率、采样格式、一帧采样个数、声道数。 对于ffplay需要知道 采样率、采样格式、声道数三个就行了。提取PCM ffmpeg -i input.mp3 -f s16le -acodec pcm_s16le -ar 48000 -ac 1 output.pcm播放PCMffplay -f s16le -ar 48000 -ac 1 ...原创 2018-03-22 16:46:54 · 290 阅读 · 0 评论 -
ffmpeg-sws_scale用法
sws_scale() 作用简单说来就是转变图片的存储格式使用步骤首先初始化sws_getContext。 使用 sws_scale 转化。释放环境sws_freeContext()代码SwsContext *pSwsCtx = sws_getContext(pCodecContext->width,pCodecContext->height,pCodecContext->pix_fm原创 2018-03-14 16:44:45 · 3523 阅读 · 0 评论 -
使用ffmpeg保存PCM文件
说明PCM是音频解码后的文件。或者说经过音频经过采样后形成的二进制文件。对人来说,能听到的是20HZ-20KHZ,这也是次声波和超声波的分界线。根据采样定理,2倍最高频率就可以还原,加速滤波器带来的畸变,44.1KHZ采样已经可以了。48KHZ以上的采样率,人已经无法分辨差异了。 保存PCM文件时使用的是采用有符号16位保存,而源音频不一定是,所以需要转换。ffmpeg中的...原创 2018-03-22 14:38:00 · 3290 阅读 · 0 评论 -
H264视频码流格式浅析
原文地址 https://blog.csdn.net/h514434485/article/details/52064945针对H264码流格式说明,网上已经有很多介绍了,最近也在看这个,这里根据自己理解,做个记录。1、H264的功能分为两层:视频编码层(VLC,Video Coding Layer)和网络提取层(NAL, Network Abstraction Layer)。VLC数据...转载 2018-07-28 15:02:41 · 2707 阅读 · 0 评论 -
FFmpeg基础知识之————H264编码profile & level控制
原文地址:https://www.cnblogs.com/lidabo/p/7419393.html H.264有四种画质级别,分别是baseline, extended, main, high:1、Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC; 2、Extended profile:进阶画质。支持I/P/B/SP...转载 2018-07-28 16:17:35 · 4531 阅读 · 0 评论 -
视频压缩的基本原理,一些常见压缩算法的概念
转载地址:http://blog.csdn.net/iloveyin/article/details/24367863对于算法研究而言,本身就是要先知道哪个地方可以努力,哪些地方行不通。这些原理,就是指明方向的。一.视频压缩的可行性1.空间冗余一幅静态图像,比如人脸。背景,人脸,头发等处的亮度,颜色,都是平缓变化的。相邻的像素和色度信号值比较接近。具有强相关转载 2017-01-12 13:14:42 · 15108 阅读 · 0 评论 -
ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)
概要: 目前ONVIF协议家族设备已占据数字监控行业半壁江山以上,亲,作为开发者的你还在犹豫是否了解下吗?本文介绍了ONVIF客户端从设备搜索,鉴权,能力获取,媒体信息获取,URI地址获取的整套流程。文章只讲述了比较重要或其他博文没有讲述的开发点,详细可以参考文末参考文章。最后,能获得rtsp地址之后,然后去做其他功能比如录像,ptz这些就非常得心应手了。本文出自CSDN-固本...转载 2019-09-20 13:48:59 · 815 阅读 · 0 评论 -
ffmpeg-设置推流,拉流使用的协议类型(TCP/UDP)
原文地址:https://blog.csdn.net/shizheng163/article/details/80475927如有错误,请指正,谢谢。拉流(设置TCP/UDP)//设置参数AVDictionary *format_opts = NULL;av_dict_set(&format_opts, "stimeout", std::to_string( 2*...转载 2019-08-02 14:07:50 · 4699 阅读 · 0 评论 -
VLC-黑客指南/如何编写模块
原文:https://wiki.videolan.org/Hacker_Guide/How_To_Write_a_Module/本文由GOOGLE翻译,我只是搬运工~~←返回黑客指南LibVLC基于许多独立模块,如大多数竞争多媒体框架。每个模块都提供特定功能。本文重点介绍如何向VLC(或任何其他LibVLC应用程序)添加新模块(也称为插件)。您需要先阅读VLC核心和模块以及V...翻译 2019-05-23 15:53:34 · 303 阅读 · 0 评论 -
libVLCcore 介绍
原文地址:https://wiki.videolan.org/Hacker_Guide/Core/本文是GOOGLE翻译的。我只是搬运工。黑客指南/核心←返回黑客指南 内容 [隐藏] 1libVLCcore简介 2VLC管道和模块化 2.1VLC中的模块 3线程管理 3.1线程(vlc_threa...翻译 2019-05-23 15:05:54 · 1371 阅读 · 0 评论 -
VLC模块的类别及子类别
编写VLC模块时需要配置模块的类别和子类别。定义文件:https://www.videolan.org/developers/vlc/doc/doxygen/html/vlc__plugin_8h_source.html/* Categories and subcategories */ #define CAT_INTERFACE 1 #define SUBCAT_INTERFACE...原创 2019-05-23 14:46:04 · 216 阅读 · 0 评论 -
文档:VLC模块加载
说明:原文地址:https://wiki.videolan.org/Documentation:VLC_Modules_Loading/翻译结果来自google,我只是搬运工。 本文主要描述了VLC模块的加载机制。←返回黑客指南VLC模块加载 内容 [隐藏] 1VLC如何加载模块? 1.1关于模块的介绍 1.2如...翻译 2019-05-23 14:28:56 · 496 阅读 · 0 评论 -
FFmpeg H.264 Constant Bitrate (CBR) Encoding
转自:https://brokenpipe.wordpress.com/2016/10/07/ffmpeg-h-264-constant-bitrate-cbr-encoding-for-iptv/Copy From: https://brokenpipe.wordpress.com/2016/10/07/ffmpeg-h-264-constant-bitrate-cbr-encoding-f...转载 2018-11-29 09:16:50 · 984 阅读 · 0 评论 -
使用FFMPEG生成HLS
原文地址:使用FFMPEG生成HLSHLS也就是HTTP Live Streaming,是苹果出的一个基于HTTP的流媒体通信协议。字面意思有个live,也就是直播相关的。其实HLS可以分为点播以及直播两种。后面具体说两者在处理上有什么区别。目前HLS在RFC上还只是草案,并且一直不断更新,发现ffmpeg对于HLS的实现,不同版本的实现对应rfc版本也不一样,最新版本的,对应的HLS...转载 2018-07-28 14:16:51 · 2710 阅读 · 1 评论 -
H.264流媒体协议格式中的Annex B格式和AVCC格式深度解析
原文地址:https://blog.csdn.net/romantic_energy/article/details/50508332 本文需要读者对H.264流有一定的了解才可以理解2种格式差异。 首先要理解的是没有标准的H.264基本流格式。文档中的确包含了一个Annex,特别是描述了一种可能的格式Annex B格式,但是这个并不是一个必须要求的格式。标准文档中指...转载 2018-07-28 19:03:25 · 9873 阅读 · 0 评论 -
H264的RBSP类型之AUD
AUD从哪来Access Unit Delimiter访问单元分隔符以TS文件为例,下面开始剥洋葱~TS由一个一个188字节的TS数据包组成。有PCR和包计数(0-15)去掉TS包头,根据TS包的PID过滤,承载数据组成的就是PES流(打包的原始流),PES由一个个不定长的PES包组成。里面有PTS/DTS,去掉PES头信息得到ES(基本码流),也就是H264流或者AAC流,或者...原创 2018-07-28 17:45:47 · 4662 阅读 · 0 评论 -
ffmpeg的一些概念
AVPacket通过av_read_frame(pFormatCtx, &avPacket)获取一个AVPacket 对于视频来说,一个 AVPacket 一般包含一帧。对于音频来说,一个 AVPacket 可能包含多帧。AVFrame用来保存解码后的一帧数据。 数据存储区域需要单独分配。对于音频来说,一帧包含了多个采样, nb_samples告诉了有多少...原创 2018-03-22 13:18:36 · 751 阅读 · 0 评论 -
sdl_使用渲染器显示图片
说明基于 sdl2.0 和 vs2017 开发。 渲染机制理解renderer是渲染器,用来显示和处理纹理。 texture是纹理,可以理解为一张画,一般是由显卡处理,所以对它的访问有很多限制,对其发出的指令都通过renderer。 surface是表面,也可以理解为一张画,由CPU处理,所以访问更灵活。surface在sdl1.2中处于核心地位,在sdl2中更多用于过渡,用...原创 2018-03-09 11:48:58 · 738 阅读 · 0 评论 -
SDL_显示BMP图片
说明基于 SDL2.0 和 vs2017 开发 。有多种方法可以显示BMP图片,本文只是一种。 SDL显示BMP流程获取窗口。 获取窗口对应surface。获取bmp对应surface。将bmp的surface画在窗口的surface上。更新窗口。显示窗口。示例代码#include "stdafx.h"#include "SDL.h"...原创 2018-03-09 10:28:30 · 641 阅读 · 0 评论 -
H.264句法和语法总结(五)片头句法
转载地址:http://blog.csdn.net/tanningzhong/article/details/52415710slice_header( ) { // first_mb_in_slice 片中的第一个宏块的地址, 片通过这个句法元素来标定它自己的地址。 要注意的是在帧场自适应模式下,宏块都是成对出现,这时本句法元素表示的是第几个宏块对,对应的第一个转载 2017-01-17 09:59:56 · 261 阅读 · 0 评论 -
H.264句法和语法总结(四)图像参数集语义
转载地址:http://blog.csdn.net/tanningzhong/article/details/52415698pic_parameter_set_rbsp( ) { // pic_parameter_set_id 用以指定本参数集的序号,该序号在各片的片头被引用。 pic_parameter_set_id // seq_pa转载 2017-01-17 09:59:07 · 322 阅读 · 0 评论