音视频相关

【音视频相关——其一】 音视频 阅读详情

ffmpeg

安装

1. 源码安装 git clone https://git.ffmpeg.org/ffmpeg.git

 2.  配置 编译 安装

./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --enable-shared --disable-static --disable-x86asm --enable-ffplay

make -j`nproc` && make install

Q: 没有ffplay

A:安装 yum install libsdl2-dev -y

yum update
yum install SDL2 SDL2-devel

3.  配置环境变量

Q: 缺少动态库

A: echo "/usr/local/ffmpeg/lib" >> /etc/ld.so.conf  + ldconfig

命令

1. 视频转换为图片

ffmpeg -i test.mkv -r 1 -f image2 pic/image%3d.jpg

  • -i test.mkv:指定输入文件 test.mkv,这是你要从中提取帧的视频文件。

  • -r 1:设置帧率为每秒 1 帧。这意味着 FFmpeg 每秒从视频中提取一帧图像。你可以根据需要调整此参数,例如设置为 2 表示每秒提取两帧。

  • -f image2:指定输出格式为 image2,这是 FFmpeg 用于处理图片序列的格式。

  • pic/image%3d.jpg:指定输出图片的文件路径和命名模式。%3d 表示使用三位数字的文件名(例如 image001.jpg、image002.jpg 等)。pic/ 是输出图片的存放目录。

2. 将图片按顺序合并成视频

ffmpeg -r 25 -f image2 -i pic/image%3d.jpg -vcodec libx264 -s 1920x1080 -g 1 -keyint_min 1 -sc_threshold 0 -pix_fmt yuv420p output.mp4

  • -r 25:指定视频的帧率为每秒 25 帧。这意味着每秒钟将显示 25 张图片。
  • -f image2:指定输入格式为图片序列。image2 是 FFmpeg 处理图片序列的格式。
  • -i pic/image%3d.jpg:指定输入图片文件的路径和命名模式。%3d 表示使用三位数字的文件名(例如,image001.jpg、image002.jpg 等)。
  • -vcodec libx264:指定使用 H.264 编解码器进行视频编码。
  • -s 1920x1080:设置输出视频的分辨率为 1920x1080。
  • -g 1:设置 GOP(Group of Pictures)大小为 1。这表示每一帧都是关键帧,适合于某些特定应用场景(如视频流的实时预览),但可能会导致更大的文件大小。
  • -keyint_min 1:指定最小关键帧间隔为 1 帧。配合 -g 1 使用,确保每一帧都是关键帧。
  • -sc_threshold 0:设置场景变化阈值为 0。场景变化阈值为 0 表示无论是否检测到场景变化,FFmpeg 都会尝试在每一帧设置关键帧。
  • -pix_fmt yuv420p:指定像素格式为 YUV 4:2:0。这是常见的视频像素格式,兼容性良好。

3. 捕获摄像头

ffmpeg -list_devices true -f dshow -i dummy

  • -list_devices true:此选项用于指示 FFmpeg 列出所有可用的设备,而不是实际捕获或处理媒体流。
  • -f dshow:指定输入格式为 DirectShow。DirectShow 是 Windows 平台上的多媒体框架,用于捕获和处理音视频数据。
  • -i dummy:提供一个虚拟的输入文件名 dummy。这个参数的目的是为了满足 FFmpeg 的输入要求,但实际上并不使用这个虚拟输入。

ffmpeg -f dshow -i video="Camera 1" -t 10 output.mp4

"Camera 1" 是你从 -list_devices 命令中获得的视频设备名称,-t 10 表示录制 10 秒钟的视频。

4. 捕获桌面,推流到流媒体服务器

ffmpeg -f gdigrab -framerate 30 -i desktop -f rtsp rtsp://192.168.0.103/live/streamkey

  • -f gdigrab:指定输入格式为 gdigrab。这是 Windows 上用于捕获桌面内容的输入格式。如果你使用的是其他操作系统,可能需要使用不同的输入格式。

  • -framerate 30:设置捕获的帧率为 30 帧每秒。你可以根据需要调整这个值,通常 30 帧每秒是比较常见的选择。

  • -i desktop:指定输入来源为桌面。这告诉 FFmpeg 从整个桌面捕获视频。

  • -f flv:指定输出格式为 FLV,这是一种常用于视频流的格式。许多流媒体服务器和平台(如 YouTube、Twitch)都支持这种格式。

  • rtmp://your.streaming.server/live/streamkey:指定流媒体服务器的 URL 和流密钥。你需要将其替换为你的实际服务器地址和流密钥。例如,对于 YouTube,你可以在 YouTube 的直播设置中找到这个信息。

使用ffplay拉流

ffplay -i rtsp://192.168.0.103/live/streamkey

ffmpeg -i rtsp://your.rtsp.server/live/stream -c copy output.mp4

ffmpeg -i rtsp://your.rtsp.server/live/stream -c:v libx264 -c:a aac output.mp4

ffmpeg -rtsp_transport tcp -i rtsp://your.rtsp.server/live/stream -c copy output.mp4

  • -i rtsp://your.rtsp.server/live/stream:指定 RTSP 服务器的 URL 作为输入源。
  • -c copy:直接拷贝视频和音频流,而不进行转码,这样可以保持原始质量并提高处理速度。
  • output.mp4:保存拉取到的流的文件名和格式。在这里是 MP4 格式,你可以根据需要更改文件名和格式。
  • 如果你需要将流转码为不同的格式或编码,你可以使用 -c:v 和 -c:a 参数
  • 用 -rtsp_transport tcp 强制使用 TCP 传输协议,这可以改善在不稳定网络条件下的流稳定性

5. 

RTSP

音视频相关知识 DEMUX是Demultiplexer的缩写,中文意思是解复用器。主要作用是将多路信号分解恢复成多个原来信号的设备,即分离一个文件中的视频部分或音频部分。软件中的DEMUX是该设备的驱动参数设置接口。 MUX是Multiplex的缩写,意为“多路传输”,其实就是“混流”、“封装”的意思,是指把视频素材和音频素材封装到一个单独的文件中。 注意: muxing与demuxing的整个过程,都不对 阅读详情

相关推荐

测试经验| 音视频通话相关app如何进行测试

每一款产品,都是需要进行测试,保证功能可正常使用后,才可上线使用,这篇文章就来说一下,如何对音视频通话相关的app进行测试的。 现在市场上比较具有代表性的纯音频产品有连麦开黑产品、狼人杀(语聊游戏产品)、以及部分抢麦k歌的app… 比较具有代表性的音视频通话的产品比如: 各种直播平台、微信的视频通话功能… 音视频通话相关产品一般具备的功能有,“创建房间”、“弹幕(文字消息)”、“连麦”、“开关音频”、“视频开关”、“背景音乐”、“更改分辨率”、“摄像头翻转”等功能。 常规的功能测试 1. 创建房间: 关注一

anyRTC的博客 3057

IOS面试考察(八):音视频相关问题

文章目录IOS面试考察(八):音视频相关问题 IOS面试考察(八):音视频相关问题

kyl282889543的博客 3990

【FFmpeg】(一) 音视频相关基础知识以及FFmpeg介绍

目录【FFmpeg】(一) 音视频相关基础知识以及FFmpeg介绍一、音视频相关基础知识1、视频播放器原理1.1 解封装1.2 解码1.2.1 音频压缩数据解码1.2.2 视频压缩数据解码1.3 音视频同步二、FFmpeg 介绍1、定义2、FFmpeg 命令2.1 视频格式转换命令2.2 视频转 Gif 命令三、使用 visual studio 编译 FFmpeg四、使用 Linux主机 编译 F...

一个人的旅行的博客 1542

音视频相关的一些基本概念

音视频相关的一些基本概念

每天进步一点点 2315

智能车竞赛新手必看:用AD21从零画一块英飞凌TC264核心板(附开源PCB文件)

本文详细介绍了使用Altium Designer 21(AD21)从零开始设计英飞凌TC264核心板的完整流程,涵盖原理图绘制、PCB布线到最终DRC检查的全过程。针对智能车竞赛新手,提供了实用的硬件设计技巧和开源PCB文件,帮助快速掌握TC264核心板开发。

weixin_27017211的博客 246

Python | KS检验以及其余非参数检验的实现

Python | KS检验以及其余非参数检验的实现1 什么是KS检验2 KS检验分类?3 KS检验的Python实现3.1 检验指定的数列是否服从正态分布3.2 检验指定的两个数列是否服从相同分布4 其余的非参数检验4.1 Wilcoxon符号秩检验(t检验的非参数版本)4.2 Kruskal-Wallis H检验(方差分析的非参数版本)4.3 Mann-Whitney秩检验5 参考 1 什么是KS检验 定义:检验一个分布f(x)与理论分布g(x)【比如正态分布】是否一致,或两个观测值分布是否有显著差异的检

RUC_Lee的博客 1万+

音视频js相关属性

###音视频js相关属性 currentTime : 开始到播放现在所用的时间(可读写) duration : 媒体总时间(只读) muted : 是否静音(可读写,相比于volume优先级要高) volume : 0.0-1.0的音量相对值(可读写) paused : 媒体是否暂停(只读) ended : 媒体是否播放完毕(只读) e...

MDistance的博客 886

科研党必备:Zotero+Deepseek 打造AI文献阅读助手(附详细插件配置指南)

本文详细介绍了如何利用Zotero和Deepseek打造AI文献阅读助手,提升科研效率。从Zotero基础安装到中文文献处理插件茉莉花的配置,再到Deepseek API的集成与模型选择策略,全面覆盖了AI辅助阅读的关键环节。特别适合需要高效管理海量文献的科研工作者,显著提升文献筛选和分析速度。

backprop5master的博客 424

音视频相关文章集合

音视频路线概念集合

chengxuya的博客 226

Linux环境下OpenSSH升级到 OpenSSH_9.8p1(内置保姆级教程并包含openssl升级过程)

2024年7月1日接到安全部门同事邮件通知,目前生产环境及测试环境服务器Openssh存在远程代码执行漏洞(CVE-2024-6387),漏洞等级高,且攻击者可以成功利用该漏洞获得远程root shell最高权限从而执行任意代码及命令,主要受影响版本为8.5p1

菜鸟运维升级之路 2万+

期货套利策略(二)

接上一篇期货套利策略,随着对期货套利策略的深入了解,我发现套利策略不是那么好做的。下面将会讲碰到的一些问题。 上一篇文章中没有考虑滑点的问题,这里我们把滑点问题考虑进去。这里先说一些天勤api的买入点,天琴的买入点是当前K线的收盘价。碰到数据传输问题,还有计算等各方面问题,实际情况是无法在当前K线的收盘价买入的。这里我们把这方面问题考虑进去,利用api.wait_update()调到下一个k线数据...

qq_31611005的博客 1712

Android音视频相关

1、Adndroid VoIP相关的开源应用有哪些 ? imsdroid,sipdroid,csipsimple,linphone,WebRTC 等等 vitamio webRTC ffmpeg vlc ijkplayer 2、音频算法处理的开源库有哪些 ? speex、ffmpeg,webrtc audio module(NS、VAD、AECM、AGC),等等 3、Androi...

欢迎关注微信公众号:DroidMind 433

EndNote X9 参考文献附录列表 格式调整

EndNote X9 插入参考文献常见问题总结

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2569

音视频相关国际组织整理

下面简单的记录下和音视频标准的相关组织(如果有漏下的麻烦提醒下,谢谢) ACM   Association for Computing Machinery   美国计算机协会 AES  Audio Engineering Society   音频工程学会 ANSI  American National Standards Institute   美国国家标准局 APSIPA   Asia ...

cyq129445的博客 732

threadX的USBX的初始化和解初始化的分析。

tx_application_define的最后会使用tx_byte_pool_create创建usb线程的内存空间“ux_device_app_byte_pool”,再创建usb线程,也就是执行。主要就是创建了线程,也就是第3个参数app_ux_device_thread_entry,这个参数内是MX_USB_Device_Init,也就是USB底层初始化。进来的参数只有1个,是memory_ptr,这个就是创建的usb线程空间“ux_device_app_byte_pool”

qq_31885403的博客 647

ShaderJoy —— 简单又神奇的 “合体” 函数【GLSL】

smin 函数 它实际上有两种常见的实现方式 多项式 指数 多项式 smin 函数图 其对应的代码为 float smin( float a, float b ) { // 多项式 const float k = 0.5; float h = clamp(0.5 + 0.5 * (b - a) / k, 0.0, 1.0); return mix(b, a, h) - k * h * (1.0 - h); } 从上图中我们可以很明显的看出有两处不连...

ShaderJoy 的兴趣技术杂货铺 1857

音视频相关工作要求

腾讯 21557-音视频流媒体传输高级算法工程师(深圳) 工作职责 负责实时音视频通话、直播、视频会议等场景的流媒体网络传输算法的设计、开发及调优,包括但不限于: 负责流媒体传输中网络状态的实时检测及算法选型和集成; 负责损伤网络下的网络拥塞算法的研究和调优落地; 负责受限网络下多路流媒体的分布式中转算法设计和实现; 负责流媒体传输中音视频QOE/QOS的实现与调优; 现网实时音频、视频问题排查...

努力学习的姜饼 1504

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

音视频相关链接

开发库 FFmpeg FFmpeg官网 FFmpeg github 平台相关 DirectShow DirectShow简介 DirectShow官网

撬动未来的支点的专栏 2002

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

音视频面试必备:一文搞懂视频相关的基础概念

1、引言 随着移动互联网的普及,实时音视频技术已经在越来越多的场景下发挥重要作用,已经不再局限于IM中的实时视频聊天、实时视频会议这种功能,在远程医疗、远程教育、智能家居等等场景也司空见惯。虽然实时音视频技术的应用越来越普及,但对于程序员来说,这方面的技术门槛仍然存在(准备地说是仍然很高),想要在短时间内全面掌握实时音视频相关的技术难度非常大。以IM中的实时音视频聊天为例,一个简化了的视频聊天技术,本质就是:音视频技术+网络技术的组合体,如下图所示:网络模块之上的部分,就是音视频技术所涉及的范畴。▲...

Jiangtagong的博客 2672

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

音视频相关索引

索引首页:https://blog.youkuaiyun.com/knowledgebao/article/details/84776046 h264和h265的区别:https://blog.youkuaiyun.com/knowledgebao/article/details/84647323 协议篇-RTSP:https://blog.youkuaiyun.com/knowledgebao/article/details/...

knowledgebao的博客 3096

音视频相关协议和技术内容

将模拟语音信号转换为数字信号,然后通过μ-law或a-law算法进行非线性压扩,减少动态范围并提高信噪比,每个采样点用8位表示,因此固定比特率为64kbps。Rtp头部包含时间戳和序列号,用于同步和冲排序接收到的数据包,通常与rtcp一起用,rtcp提供质量反馈和统计信息,帮助调整传输参数。窄带语言编码标准,用于电话系统中的语音传输,有两种变体,μ-law 和 a-law 用于不同地区的电话系统。网络协议,用于互联网上传输实时音频和视频,提供了时间戳,序列号等机制,确保数据包按顺序到达并能同步播放;

qq_42584266的博客 1157

音视频及H264/H256编码相关原理

我们播放的视频文件一般都是用一种封装格式封装起来的,封装格式的作用是什么呢?一般视频文件里不光有视频,还有音频,封装格式的作用就是把视频和音频打包起来。所以我们先要解封装格式,看有哪些视频流和哪些音频流,此时的音频流和视频流都还是压缩数据,不能直接用于显示的,这就需要解码。如FFmpeg 视频文件就是一个容器 (视频流(H264) 音频流(aac))。

wangyongyao1989的博客 5911

【音视频】音视频相关技术-学习路线拓扑

音视频相关技术点-学习路线拓扑图

weixin_34854320的博客 201
上一篇: sourceinsigt + samba
m_0806
博客等级 码龄7年 25粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值