logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【FFmpeg实战】ffmpeg播放器-音视频解码流程

封装格式上下文结构体,全局结构体,保存了视频文件封装格式相关信息:每种封装格式,对应一个该结构体:视频文件中每个视频(音频)流对应一个该结构体:编码器上下文结构体,保存了视频(音频)编解码相关信息AVCodec:每种视频(音频)编解码器(例如H.264解码器)对应一个该结构体。

#音视频
【FFmpeg实战】ffmpeg filter amix混音实现

代表某一filter,[in0][in1][in2]代表的是输入节点,amix是混音滤波器=inputs=3这个是参数表示输入是3个,[out]表示输出。ffmpeg的滤波filter有amix这个混音器,可以借助它来做音频的多路混音。首先我们需要编译ffmpeg并安装它,可以具备编码功能,考虑可以加mp3或者aac编码库进来,最简单的方式是编码成pcm格式直接输出到文件,用VLC也可以播放。需要

Linux C/C++ Server websocket协议与服务器实现

原文 https://www.cnblogs.com/go-ahead-wsg/p/17294745.html服务器需要主动推送(长连接)给客户端数据,通常使用websocket协议,比如股票信息实时数据等;websocket服务器为websocket协议+reactor实现websocket协议与http协议对比,http协议是针对网页设计的协议,为一请求一连接形式适合短连接,而websocke

文章图片
#服务器#linux
【FFmpeg实战】音频重采样

测试发现,其中AAC解码输出的数据为浮点型的 AV_SAMPLE_FMT_FLTP 格式,MP3解码输出的数据为 AV_SAMPLE_FMT_S16P 格式(使用的mp3文件为16位深)。将音频进行SDL播放的时候,因为当前的SDL2.0不支持plannar格式,也不支持浮点型的,而最新的FFpemg会将音频解码为AV_SAMPLE_FMT_FLTP,这个时候进行对它重采样的话,就可以在SDL2.

#音视频
音视频开发_音频基础知识

PCM是脉冲编码调制(Pulse Code Modulation)的缩写,是一种常用的数字音频编码格式。线性采样:PCM是一种线性采样编码方式,即将模拟声音信号通过固定时间间隔进行采样,并将每个采样值转换为对应的数字编码。无损编码:PCM是一种无损编码方式,即不对音频数据进行任何压缩或编码,能够完整保留原始音频信号的信息。单声道/立体声:PCM可以是单声道(Mono)或立体声(Stereo),单声

#音视频
【FFmpeg实战】FFmpeg 音频重采样

所谓重采样,一句话总结就是改变音频的三元素,也就是通过重采样改变音频的采样率、采样格式或者声道数。例如音频A是采样率48000hz、采样格式为f32le、声道数为1,通过重采样可以将音频A的采样率变更为采样率44100hz、采样格式为s16le、声道数为2等。

#音视频
【音视频基础】音频编码原理

AAC前面有个数据头,一般是ADTS格式的头。对于直播系统,一般使用AAC,我们使用的都是ADTS格式。注意,读出来Audio Object Types值还需要加1,才是对应的类型。如果读出来Audio Object Types值是1,那么对应的是AAL LC类型。ADTS头解析网站PS:\1. 有时候我们无法播放一段AAC数据,可能是缺少了ADTS头信息,这是我们就需要想办法加上这个头信息。

文章图片
#音视频
【FFmpeg实战】音频解码与编码流程

可以通过Swr_get_delay返回保留在缓存区中的数据大小,要获取剩余数据作为输出数据,可以重新调用此函数或swr_convert函数,并将AVFrame *input设置为NULL。音频编解码流程与视频编解码流程一致,我们可以对 mp4 文件的音频流进行解码,并将解码后的音频数据保存到 PCM 文件中,后续我们可以通过读取 PCM 文件中的数据实现音频流的编码操作。可以用该函数替换视频编码中

#音视频
音视频学习 AudioTrack、OpenSL ES 音频渲染

前言在讲解音频渲染之前,需要对音频的基础知识有所了解,所以该篇分为基础概念和AudioTrack 以及 OpenSL ES Demo 实例讲解,这样有助于更好的理解 Android 中音频渲染。音频的基础概念涉及的知识点比较多,该篇文章的上半部分会详细的介绍,后续文章基本上都会涉及音频的开发,有了基础对于后面的内容就更容易上手了。音频的基础知识播放器入门到提高快速掌握音视频开发基础知识声音的物理性

#音视频
事件驱动库 libev 使用详解

C/C++Linux服务器开发/后台架构师知识体系libev 是一个通过 C 语言编写的,高性能的事件循环库,支持多种事件类型,与此类似的事件循环库还有 libevent、libubox 等,在此详细介绍下 libev 相关的内容。简介这是一个简单而且高性能的事件库,支持常规的 IO、定时器等事件,而且没有任何依赖,同时支持多线程模式。关于 libev 详见官网 http://software.s

#linux
    共 35 条
  • 1
  • 2
  • 3
  • 4
  • 请选择