流媒体
文章平均质量分 80
logens
海阔凭鱼跃,天高任鸟飞
展开
-
搭建了nginx直播,然后用ffmpeg推流以及vlc拉流播放的场景
最近在研究直播中各种音频和视频同步,以及音频视频处理的业务,所以自己搭建了一个简单的直播环境,用nginx做直播服务器,实现推流和拉流的场景模拟,首先nginx中的配置,是参考网上大神的配置。直接加入一个live的模拟server,然后ffmpeg推流的命令也是相当之简单,ffmpeg -re -i test.mp4 -f flv rtmp://localhost:1935/live,然后vlc直接输入网络串流地址,就可以播放,输入的可以是本地文件,也可以是网络上的rtmp之类的流。接下来想分析下ffmpe原创 2021-03-01 18:12:43 · 397 阅读 · 0 评论 -
vlc在arm下的编译
VLC Media Player是和Mplayer齐名的优秀的开源播放器。我想用它休闲娱乐,也想做二次开发,当然不想后者的不成熟打扰前者,故做两种安装就很必要啦。官网上有讲如何安装和编译,但有些凌乱,现将我的实践记录并整理如下。I. 用于播放的安装Ubuntu下的安装很容易,在命令行下: $ sudo apt-get install vlc 如果想要插件,则在后面加上相应的插件选项即可:vlc-plug...转载 2020-08-20 18:43:38 · 1438 阅读 · 0 评论 -
ffmpeg 在linux下的使用
1.FFmpeg编译1.1.安装yasm这里我是直接通过ubuntu包安装的,当然也可以通过编译源码来安装。sudo apt-get install yasm1.2.下载FFmpeggit clone https://git.ffmpeg.org/ffmpeg.git1.3.配置、编译FFMPEG./configure --prefix=host --enable-shared --disable-static --disable-doc 关于FFMPEG的配置参数,我转载 2020-07-13 16:00:23 · 668 阅读 · 0 评论 -
arm下编译ffmpeg
交叉编译器版本:4.8.3依赖x264,lamex264:1.wget ftp://ftp.videolan.org/pub/x264/snapshots/last_stable_x264.tar.bz22.tar xvf last_stable_x264.tar.bz23.cd x264-snapshot-20170903-2245-stable4.export CC=arm-linux-gnueabi-gcc5.export AR=arm-linux-gnueabi-ar转载 2020-07-09 20:05:59 · 1716 阅读 · 0 评论 -
ffmpeg的那些事儿
今天在做编解码时,遇到一个奇怪的问题,就是av_image_alloc 导致内存泄漏,这点比较纳闷,场景是这样的,在视频传输过程中,需要根据网速来切换码流大小哦,如果带宽不够自动切换低码流传输,于是我将采集的1080p的视频转化成yuv格式发送。过程如下:首先初始化编解码环境: if (_thumbCodecContext != nullptr && _thumbCodec != nullptr) { return 0; } int ret; AVCodecID c原创 2020-07-03 15:10:50 · 1109 阅读 · 0 评论 -
关于jpg的那些事儿
bmp的码流相当费空间,所以一般在传输时,都会编码为其他格式,就效率来说,一般rgb32的原始码流在转换为yuv时是减半的,如果说对画面质素要求不高的,可以转换为jpg码流,当然h264是传输码流的首选,代码如下#include <iostream>extern "C"{#include <libavformat/avformat.h>#include <libswscale/swscale.h>}#pragma comment(lib,"avfor原创 2020-07-01 17:57:32 · 236 阅读 · 0 评论 -
ffmpeg关于sws_scale的那些事儿
随便聊聊,sws_scale 在对rgb处理上,基本都是把数据放于一个通道,而且针对行来扫描,所以linedata就是图像的宽 * 通道数,而在对yuv的处理上,基本上都是依据具体的格式,分为三个通道来处理下面对其函数参数进行详细说明:1.参数 SwsContext *c,转换格式的上下文。也就是 sws_getContext 函数返回的结果。2.参数 const uint8_t *const srcSlice[],输入图像的每个颜色通道的数据指针。其实就是解码后的AVFrame中的data[..原创 2020-07-01 17:34:59 · 1252 阅读 · 0 评论 -
ffmpeg 被否决的版本冲突
最近在练习ffmpeg开发音视频的一些内容,发现ffmpeg由于版本的冲突,有些api已经不再使用。所以抽时间整理一下av_free_packet这个api的使用已经替换为 av_packet_unref,两者在使用上没有任何的不同,就是API的替换AVStream::codec 这个成员已被否决使用,与之替换的是AVStream::codecpar,此成员保留了AVStream...原创 2019-07-21 12:38:20 · 714 阅读 · 0 评论 -
vlc源码分析二
vlc音视频同步vlc播放里媒体时实现音视频同步,简单来说就是发送方发送的RTP包带有时间戳,接收方根据此时间戳不断矫正本地时钟播放音视频时根据本地时钟进行同步播放。首先了解两个概念:stream clock 和system clock,stream clock是流时钟,即打包RTP中的时间戳,system clock是本地时钟,当前系统的tick。当第一个rtp包来到时fSyn...转载 2019-07-01 21:14:12 · 940 阅读 · 0 评论 -
directshow捕获摄像头数据
directshow捕获摄像头的数据并显示#include "stdafx.h" #include <DShow.h> #include <Guiddef.h> #include <strmif.h> #define CHECK_HR(s) if (FAILED(s)) {return 1;} #define SAFE_RELEASE...转载 2019-06-12 13:32:38 · 2229 阅读 · 1 评论