音视频开发基础
记录个人音视频学习笔记
令狐掌门
C++程序员,出版过《C++零基础入门视频教程》、《Qt高级进阶视频教程》、《OBS源码分析与桌面录制视频教程》、《PyQt PySide6零基础入门与项目实战》。
展开
-
微软ffmpeg demo
github仓库 https://github.com/microsoft/FFmpegInteropFFmpegInterop is an open-source project that aims to provide an easy way to use FFmpeg in Windows 10, Windows 8.1, and Windows Phone 8.1 applications for playback of a variety of media contents. FFmpegInt原创 2022-01-23 14:32:08 · 525 阅读 · 0 评论 -
vs2019编译ffmpeg源码为静态库动态库【完整步骤、亲测可行】
ffmpeg大概从两年前版本开始,不再提供编译好的lib,dll,需要开发者自己编译,在linux下编译ffmpeg可能相对简单,windows稍微复杂点,很多文章介绍使用msys2编译,但是绝大多数都是无法正确编译出lib, 而且也只是加上了x264, 然而ffmpeg支持的依赖库很多,用命令行,一个命令写错就编译失败了,本篇博客介绍如何使用vs2019编译最新的ffmpeg源码,可以编译为静态库、动态库,支持x64和win32版本,例如下面是我的vs2019 编译结果:lib库路径 我的编原创 2021-11-27 21:14:42 · 12406 阅读 · 59 评论 -
ffmpeg命令行整理
提取PCM数据ffmpeg -i 1.mp4 -vn -ar 44100 -ac 2 -f s16le 1.pcm播放PCMffplay -ar 44100 -ac 2 -f s16le -i out.pcmPCM转WAVffmpeg -f s16be -ar 8000 -ac 2 -acodec pcm_s16be -i input.raw output.wavmp4转yuv420ffmpeg -i 1.mp4 -an -c:v rawvideo -s 640x360 -pix_fmt yu原创 2021-07-29 23:00:54 · 180 阅读 · 0 评论 -
开源流媒体服务器ZLMediaKit介绍
ZLMediaKit一个基于C++11的高性能运营级流媒体服务框架,跨平台,代码用CMake管理,可以用VS2019, XCode等进行编译。仓库地址 https://github.com/ZLMediaKit/ZLMediaKit原创 2021-07-25 12:41:48 · 2438 阅读 · 0 评论 -
VS2013编译vlc源码
VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。官网地址:http://www.videolan.org/ 源码是linux下开发的,但是已经有人把它修改到VS下,github上有链接:https://github.com/sunqueen?tab=repositories ...原创 2019-12-07 02:03:49 · 816 阅读 · 0 评论 -
win10编译x264源码
x264源码下载 x264官网:https://www.videolan.org/developers/x264.html git仓库: git clone https://code.videolan.org/videolan/x264.git安装msys msys官网 https://www.msys2.org/ 下载后直接双击安装即可,我安装到了D:/DevTools/msys64,安装完成后,在msys2.exe窗口执行如下命令:pacman -S make gcc diffut原创 2021-07-05 20:19:19 · 687 阅读 · 1 评论 -
vs2017编译x265源码
本篇博客介绍如何在windows上用vs2017编译x265源码为sln,在编译x265之前,先得安装vs2017,其次是安装好CMake.x265官网:https://www.videolan.org/developers/x265.html查看官网可知,在ubuntu命令行下执行如下命令即可获取源码:hg clone http://hg.videolan.org/x265如果没有安装mercurial,则会报错,执行如下命令进行安装:sudo apt-get install mercuria原创 2021-06-17 21:57:11 · 524 阅读 · 0 评论 -
ffmpeg对视频数据进行h264编码为并封装成mp4
ffmpeg抽取视频1.mp4 30秒的rgb数据,指令如下:ffmpeg -i 1.mp4 -t 30 -pix_fmt rgb24 -s 960x640 data24.rgb-t 30表示时间,30秒下面是rgb–>yuv–>h264–>mp4的流程/*ffmpeg视频编码 rgb转mp4*/#include <iostream>extern "C"{ #include <libavformat/avformat.h> #incl原创 2021-05-24 22:37:00 · 2071 阅读 · 4 评论 -
什么是m3u8?
什么是m3u8? m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8。 m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。使用m3u8格式文件主要因为可以实现多码率视频的适配,视频网站可以根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。 现在的视频网站采用的是流媒体传输协议,就是将一段视频切成无数个小段,这几个小段就是ts格式的视频文件,一段一段的原创 2021-05-22 14:47:51 · 42357 阅读 · 2 评论 -
h264格式说明与分析
H264是一种视频编码标准,用ffmpeg工具可以将MP4视频转码为h264,例如下面的命令:ffmpeg -i 1.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264 h264的功能分为两层,视频编码层(VCL)和网络提取层(NAL), 我们常关注网络提取层(NAL),H264在网...原创 2020-05-03 22:49:47 · 889 阅读 · 0 评论 -
C# FFmpeg开发说明
FFmpeg是用C开发的,如果C#要用,可以调用FFmpeg的dll, 但是这样比较复杂,FFmpeg的sdk有很多函数,C#调用C还涉及到数据类型转换,难度很大,不过FFmpeg有C#版本FFmpeg.AutoGen,在项目中可以直接导入使用。 FFmpeg.AutoGen 项目源码https://github.com/Ruslan-B/FFmpeg.Auto...原创 2020-05-01 17:30:57 · 6160 阅读 · 1 评论 -
ffmpeg本地文件udp推流命令
mp4推udp ffmpeg -re -i 1.mp4 -vcodec h264 -acodec aac -pkt_size 1316 -f mpegts udp://127.0.0.1:1234 用vlc可以播放 udp://@:1234原创 2020-04-08 18:32:00 · 4943 阅读 · 1 评论 -
C++调用ffmpeg命令推流【详细代码】
我们可以使用ffmpeg命令进行很多工作,也可以在代码中调用ffmpeg指令进行相关操作,例如推流,录屏等,线面介绍C++调用ffmpeg命令进行rtmp推流。命令如下: ffmpeg.exe -re -i qqq.flv -c copy -f flv rtmp地址 ...原创 2020-03-06 15:45:19 · 6720 阅读 · 3 评论 -
C++ ffmpeg开发环境配置
本篇记录ffmpeg C++开发环境配置,我的环境:win10-64 ,VS2015,FFmpeg_4.2.1_win64 需要ffmpeg 4.2.1 win64开发包的可以去【ffmpeg官网】下载,或者点击点击如下百度网盘链接下载. 链接:https://pan.baidu.com/s/1YXmkHoBp-JYMln7aSQrgs...原创 2020-02-28 13:09:32 · 2398 阅读 · 0 评论 -
ffmpeg命令行视频剪辑与拼接
剪辑ffmpeg -i 1.mp4-ss 00:10:00-c copy -to 00:20:002.mp4 原视频 开始时间 结束时间 输出的视频拼接首先,把要合并的视频按顺序写到1.txt里,例如file '1.mp4'file '2.mp4'注意必须单引号然后ffmpeg...原创 2020-02-09 21:14:36 · 1463 阅读 · 2 评论 -
ffmpeg rtmp推流代码示例
rtmp推流,得有rtmp服务器,可以参考这篇博客搭建rtmp服务器 ===》》》ubuntu搭建rtmp服务器,如果自己有rtmp服务器,可以不用看。 rtmp推流需要用flv格式, 本篇博客demo是本地flv文件rtmp推流. 主要流程如下: 代码如下:#include <iostream>extern "C"{#includ...原创 2020-01-31 21:22:11 · 6282 阅读 · 5 评论 -
av_dump_format函数使用说明
FFmpeg API : av_dump_format, 打印关于输入或输出格式的详细信息, 代码声明如下/** * Print detailed information about the input or output format, such as * duration, bitrate, streams, container, programs, metadata, side...原创 2020-01-28 20:43:29 · 10104 阅读 · 4 评论 -
FFmpeg简介与源码编译
一 FFmpeg是什么 FFmpeg诞生于十几年前,最初是作为一个MPlayer播放器的一个子项目出现。因为当时的播放器有需要支持各种各样解码的需求, 其中有一位Mplayer的开发者看到了这样的需求,于是编写了FFmpeg。 2000年,法国天才程序员Fabrice Bell开发了初版; 2004年,Michael Niederm...原创 2019-11-18 18:34:32 · 991 阅读 · 0 评论 -
ffmpeg.exe的使用与环境设置
FFmpeg本身有一些工具,如ffmpeg.exe, ffplay.exe,这些命令及dll在 shared.zip的bin目录,我么把这些命令所在的路径添加到环境变量Path中,在命令行即可运行相关操作,例如,我放倒了D盘。 这些都做好后,就可以在命令行执行相关操作了,例如查看ffmpeg的版本:ffmpeg -versionC:\Users\Adm...原创 2019-11-18 18:55:37 · 1851 阅读 · 1 评论 -
ffmpeg mp4转yuv
1.mp4转yuv ffmpeg -i test.mp4 test.yuv播放yuv ffplay -f rawvideo -video_size 960x540-i test.yuv注意指定视频的宽高,不然会绿屏,花屏。原创 2019-12-08 22:59:56 · 1063 阅读 · 0 评论 -
FFmpeg拉取rtmp流转udp输出播放
用ffmpeg可以拉取rtmp流,比如湖南卫视的:rtmp://58.200.131.2:1935/livetv/hunantv 在vlc播放器可以测试看看,网速不好的,会有延时, 媒体----打开网络串流,填入湖南卫视的rtmp地址。 播放如下 太卡了,没专业播放器爽。 下面开始本篇的主题,拉取rtmp流,用udp...原创 2019-12-14 17:27:31 · 3697 阅读 · 5 评论 -
ubuntu搭建nginx-rtmp服务器
rtmp的服务器有很多,本篇博客介绍如何安装配置nginx-rtmp服务器。 系统ubuntu, deepin或者其它linux版本。先安装以下依赖sudo apt-get install libssl-devsudo apt-get install libpcre3 libpcre3-devsudo apt-get install opens...原创 2020-01-05 21:25:33 · 2814 阅读 · 1 评论 -
H.264标准简介
H.264/AVC是由国际电信联盟标准化组织(ITU-T)的视频图像专家组(VCEG)和国际标准化组织(ISO/IEC )的运动图像专家组(MPEG )共同组成的联合视频組(JVT)所开发的最新的视频编码标准,被称作ISO/IEC14496-10或MPEG-4/AVC.联合视频组JVT早期开发的MPEG -2/H. 262视频编码标准已经成为目前广泛使用的DVD数据编码技术;最...原创 2019-12-21 00:58:07 · 764 阅读 · 1 评论