音视频
文章平均质量分 51
佳佳鸽
这个作者很懒,什么都没留下…
展开
-
flv.js解析与使用
简介Flv.js 是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。它的工作原理是将 FLV 文件流转码复用成 ISO BMFF(MP4 碎片)片段,然后通过 Media Source Extensions 将 MP4 片段喂进浏览器。Github地址:https://github.com/Bilibili/flv.js/flv.js demo地址:http://bilibili.github.io/flv.js原创 2022-04-27 20:01:34 · 10141 阅读 · 1 评论 -
flv.js demo拉流失败
flv.js demo地址[IOController] > Loader error, code = -1, msg = Failed to fetch[TransmuxingController] > IOException: type = Exception, code = -1, msg = Failed to fetch[MSEController] > MediaSource onSourceOpen首先说明:测试流是通过FFmpeg推出RTMP流,通过nginx将RT原创 2022-01-12 13:40:39 · 3582 阅读 · 0 评论 -
Could not initialize SDL - No available video device (Did you set the DISPLAY variable?)
用ffplay播放音频文件时出现如下错误提示:ffplay播放命令ffplay -ar 44100 -ac 2 -f s16le -vn audio.pcm解决办法:加入参数: -nodispffplay -ar 44100 -ac 2 -f s16le -vn -nodisp audio.pcm参数列表:原创 2021-12-28 10:41:33 · 1599 阅读 · 0 评论 -
RK11xx nginx交叉编译推flv流
RK11xx nginx交叉编译推http-flv流原创 2021-12-25 11:50:59 · 1983 阅读 · 0 评论 -
基于Nginx服务FFmpeg-RTMP/HTTP/FLV推拉流使用方法
FFMPEG实现RTMP推流原创 2021-12-25 11:07:10 · 6529 阅读 · 3 评论 -
linux arecord录音
首先是arecord的使用方法:(arecord -h)-h, --help help --version print current version-l, --list-devices list all soundcards and digital audio devices-L, --list-pcms list device names-D, --device=NAME select PCM by na原创 2021-12-23 10:11:19 · 3564 阅读 · 0 评论 -
基于Ubuntu+FFmepg源码通过Nginx+Live555服务器完成RTMP+RTSP推H264流
最近项目需要支持RTMP+RTSP推流功能,最终版本是在RK平台上显示,这里提供一个ubuntu系统上的简单实现demo(主要C实现)。实现方式:RTMP:将完整H264帧数据发布到Nginx服务器,通过VLC播放器拉流显示。RTSP:将完整H264帧数据发布到Live555服务器,通过VLC播放器拉流显示。Nginx:服务器是通过网络读取数据流Live555:服务器是通过文件读取数据流(此demo用到fifo有名管道)完整DEMO工程:https://download.csdn.net/dow原创 2021-08-28 09:50:51 · 831 阅读 · 1 评论 -
Ubuntu+FFmpeg源码+H264+RTMP推流
PC端通过FFmpeg源码实现将H264数据RTMP推流到Nginx服务器上,这个是用于PC端的测试demo,程序可以直接移植到ARM版本中,需要将库文件交叉编译,以及修改对应的交叉编译工具链即可。因为实现这个功能的环境比较恶劣(没有摄像头),本人通过将开发板端摄像头实时数据保存成二进制文件(.bin),按规定格式[NAL_SIZE|NAL||NAL_SIZE|NAL|…|NAL_SIZE|NAL|NAL_SIZE|NAL|],现将一个完整的NAL帧数据大小写入文件,紧接是NAL数据,如此循环。当PC端原创 2021-08-24 16:53:18 · 1862 阅读 · 0 评论 -
Could not find a valid device
ffmpeg源码实现H264推流时,出现错误提醒:配置编码器失败[vp8_v4l2m2m @ 0x56195db9f9f0] Could not find a valid device[vp8_v4l2m2m @ 0x56195db9f9f0] can't configure encoder解决办法:下载x264源码编译生成libx264.so库,重新编译FFmpeg并将x264添加进去编译方法:git clone https://code.videolan.org/videolan/x264原创 2021-08-23 18:30:06 · 3120 阅读 · 0 评论 -
Stream #0:0: Unknown: none
ffmpeg源码实现H264推流时,出现错误提醒:Stream #0:0: Unknown: none发现这是在add_stream这一步没有将编码器打开**解决办法:**添加编码器部分原文链接:https://blog.csdn.net/weixin_43793181/article/details/119874147?spm=1001.2014.3001.5501...原创 2021-08-23 18:23:25 · 919 阅读 · 0 评论 -
ffmpeg源码实现H264推流
因为项目的需要,需要将摄像头的实时流,通过ffmpeg源码实现将一帧帧的H264数据推流到Nginx服务器上。程序运行时出现报错:Stream #0:0: Unknown: none后来发现是在add_stream这一步没有将编码器打开**解决办法:**添加编码器部分这次编译运行却又出现新问题,配置编码器失败[vp8_v4l2m2m @ 0x56195db9f9f0] Could not find a valid device[vp8_v4l2m2m @ 0x56195db9f9f0]原创 2021-08-23 18:21:20 · 4332 阅读 · 3 评论 -
linux将h264文件转化为flv文件
linux将h264视频文件转化为flv视频文件,C语言实现,不需链接第三方库。完整工程代码(含Makefile)具体接口函数如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include "flv.h"static void paramInit(PT_FlvContext pFlvCtx){ pFlvCtx->avParam.bHasVideo = 1; pF原创 2021-08-13 15:16:23 · 539 阅读 · 0 评论 -
开发板FFmpeg+RTMP推流到Nginx服务器
本文的应用场景 :开发板上跑Nginx-RTMP服务器开发板利用FFmpeg源码实现推流(本地视频源)PC机用VLC拉取URL地址流进行播放nginx-rtmp交叉编译与移植Linux FFmpeg交叉编译与移植FFmpeg源码实现推流感谢雷神!完整工程代码(含Makefile)#include <stdio.h> #define __STDC_CONSTANT_MACROS#ifdef __cplusplusextern "C"{#endif#include &l原创 2021-08-07 11:49:22 · 566 阅读 · 0 评论 -
Linux FFmpeg交叉编译与移植
背景Linux下对FFmpeg进行交叉编译与移植到开发板,通过FFmpeg在开发板上实现RTMP推流。Nginx服务器的交叉编译:https://blog.csdn.net/weixin_43793181/article/details/116499896FFmpeg源码下载FFmpeg源码下载地址:https://github.com/FFmpeg/FFmpeg/releases选择对应版本号进行下载根据使用需要裁剪configuretar -zxvf FFmpeg-n4.3.1.tar.原创 2021-07-20 19:01:29 · 1196 阅读 · 2 评论 -
Hi3536音频单声道改双声道
单声道参数设置: stAioAttr.enSamplerate = AUDIO_SAMPLE_RATE_8000; stAioAttr.enBitwidth = AUDIO_BIT_WIDTH_16; stAioAttr.enWorkmode = AIO_MODE_I2S_MASTER; stAioAttr.enSoundmode = AUDIO_SOUND_MODE_MONO; stAioAttr.u32EXFlag原创 2021-05-30 14:39:35 · 613 阅读 · 1 评论 -
Hi3536视频编解码之视频叠加
通过Hi3536sdk中Hi3536_SDK_V2.0.7.0/mpp_master/sample/vo的例程修改而来的视频叠加简单例程。例程实现了打开16个窗口,通过按键输入,控制每个窗口以规定的大小、位置叠加起来。效果如下:主要功能函数代码如下(注释行为关键部分):HI_S32 SAMPLE_VO_Virtual_HD0(HI_VOID){ HI_S32 s32Ret = HI_SUCCESS; VB_CONF_S stVbConf; HI_U32原创 2021-05-24 20:42:15 · 772 阅读 · 1 评论 -
基于librtmp的推流与拉流,x86上的简单示例
先将RTMPDUMP、OPENSSL下载解压并编译到对应目录下,再将以下源文件与Makefile放到相对的目录下,进行编译与运行即可。rtmp_send.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdint.h>#ifndef WIN32#include <unistd.h>#endif#include "../rtmpdump-2.原创 2021-04-29 15:11:37 · 339 阅读 · 0 评论 -
Ubuntu下FLV转为MP4
首先需要安装一个小插件sudo apt-get install libav-tools转换命令(将test.flv转换为test.mp4)avconv -i test.flv -codec copy test.mp4注意:当前目录下不要有与生成文件重名的文件,可能会导致音频与视频不同步的问题。...原创 2021-04-25 10:32:35 · 523 阅读 · 0 评论 -
error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or dir
交叉编译SRS时出现错误提示:error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory解决办法:sudo apt-get updatesudo apt-get install lib32z1完结!!撒花!!!原创 2021-04-23 15:41:24 · 5597 阅读 · 1 评论 -
交叉编译srs
首先进入到trunk目录下:srs/trunk,修改/trunk/auto/setup_variables.shvi auto/setup_variables.sh将第一个段落 if [ $SRS_ARM_UBUNTU12 = YES ]; then __SrsArmCC="arm-linux-gnueabi-gcc"; __SrsArmGCC="arm-linux-gnueabi-gcc"; __SrsArmCXX="arm-linux-gnueabi-g++";原创 2021-04-23 15:38:00 · 687 阅读 · 0 评论 -
Linux系统FFmpeg中过滤器的用法
1、视频缩放(设置输出视频的窗口大小)比如将input.mp4固定输出窗口大小为800*600,并输出为output.mp4ffmpeg -i input.mp4 -vf "scale=w=800:h=600" output.mp4比如将input.mp4固定输出窗口长宽大小均为原来的1/2,并输出为output.mp4ffmpeg -i input.mp4 -vf "scale=w=1/2*in_w:h=1/2*in_h" output.mp42、视频裁剪比如从左上角(0,0)开始到(80原创 2021-02-27 09:07:08 · 296 阅读 · 0 评论 -
Linux系统上FFmpeg的高级用法
Linux系统上FFmpeg的基本用法请跳转:1、拆分媒体文件比如将同一个MP4视频文件,输出成两个视频,第一个是前30s,第二个是从第30s开始到结束ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp42、媒体文件拼接合并比如我将刚刚拆分开的视频文件与另外一个视频文件拼接合并在一起,先在视频文件同目录下新建一个.txt的文本文件,文本文件内容输入如下内容并保存(文件类型格式相同)终端输入:ffmpeg -原创 2021-02-26 20:02:54 · 765 阅读 · 0 评论 -
Linux系统上FFmpeg的使用命令
FFmpeg是领先的多媒体框架,能够解码、编码、转码、混合、解密、流媒体、过滤和播放人类和机器创造的几乎所有东西。它支持最晦涩的古老格式,直到最尖端的格式。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的便携性。 FFmpeg可以在 Linux、Mac OS X、Microsoft Windows、BSDs、Solaris 等各种构建环境、机器架构和配置下编译、运行,并通过测试基础设施 FATE。 它包含了 libavcodec、libavutil、libavformat、libavfi.原创 2021-02-26 16:31:19 · 1860 阅读 · 0 评论