利用ffmpeg实现rtmp推流
https://www.jianshu.com/p/c141fc7881e7
ffmpeg 常见命令功能:
查看电脑设备:
ffmpeg -list_devices true -f dshow -i dummy
测试摄像头是否可用:
ffplay -f dshow -i video="USB2.0 PC CAMERA" USB2.0 PC CAMERA为摄像头名称
或者
ffplay -f vfwcap -i 0
查看摄像头和麦克风信息:
ffmpeg -list_options true -f dshow -i video="USB2.0 PC CAMERA" USB2.0 PC CAMERA为摄像头名称
ffmpeg -list_options true -f dshow -i audio="麦克风 (2- USB2.0 MIC)"
本地视频的推流:
ffmpeg.exe -re -i demo.wmv -f flv rtmp://127.0.0.1:1935/live/123 此时ffmpeg源源不断的把视频推流至服务器,如果地址没错,
视频文件 demo.wmv 可以利用vlc或其他手段实现拉流,这里就先不解释如何拉流
摄像头推流:
ffmpeg -f dshow -i video="USB2.0 PC CAMERA"
-vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123
USB2.0 PC CAMERA为摄像头名称 播放地址: rtmp://127.0.0.1:1935/live/123
麦克风推流:
ffmpeg -f dshow -i audio="麦克风 (2- USB2.0 MIC)"
-vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123
麦克风 (2- USB2.0 MIC) 播放地址: rtmp://127.0.0.1:1935/live/123
声音被推流出去了,通过vlc拉流可以听到录制的声音,但很明显不会有画面
摄像头&麦克风推流:
ffmpeg -f dshow -i video="USB2.0 PC CAMERA"
-f dshow -i audio="麦克风 (2- USB2.0 MIC)"
-vcodec libx264 -preset:v ultrafast -tune:v zerolatency
-f flv rtmp://127.0.0.1:1935/live/123
或者 ( USB2.0 PC CAMERA为摄像头名称 麦克风 (2- USB2.0 MIC) 播放地址: rtmp://127.0.0.1:1935/live/123
)
ffmpeg -f dshow -i video="USB2.0 PC CAMERA":audio="麦克风 (2- USB2.0 MIC)"
-vcodec libx264 -r 25 -preset:v ultrafast -tune:v zerolatency
-f flv rtmp://127.0.0.1:1935/live/123
画面与声音源源不断的被推流到服务器,接下来我们就应该正式的开发拉流了
分离视频和音频:
ffmpeg -i input_file.mp4 -vcodec copy -an output_file.avi //只保留了视频 视频文件: input_file.mp4 输出文件: output_file.avi
ffmpeg -i input_file.mp4 -acodec copy -vn output_file.mp3 //只保留了音频 视频文件: input_file.mp4 输出文件: output_file.mp3
合并视频和音频:
ffmpeg -i input_file1.avi
-i input_file2.mp3
-vcodec copy
-acodec copy output_file.mp4
视频文件: input_file1.avi + input_file2.mp3 输出文件: output_file.mp4
选项说明:
-vcodec copy:指定复制视频数据,不对输如视频进行编解码
-acodec copy:指定复制音频数据,不对输如音频进行编解码
-an:指数去除音频数据
-vn:指定去除视频数据
-vcodec mpeg4:指定输出视频数据按照mp4格式编码
-acodec mp3:指定输出音频数据按照mp3格式编码
转换音频格式 :
ffmpeg -i input_file.mp3 -acodec g722 -ar 16k -ac 1 output_file.wav //转换MP3格式音频为用g722编码的wav格式
视频文件: input_file.mp3 输出文件: output_file.avi
列举几个生成其他音频格式的命令:
ffmpeg -i input_file.mp3 // 视频文件: input_file.mp3
-acodec g723_1 // g723标准
-ar 8k // 采样频率8kHz
-ab 6.3k // 码率为5.3kbs/6.3kbs
-ac 1
output_file.wav //g723标准要求采样频率8kHz,码率为5.3kbs/6.3kbs
ffmpeg -i input_file.mp3 // 视频文件: input_file.mp3
-acodec g726 // g726标准
-ar 8k // 采样频率8kHz
-ab 32k // 码率为40kbs/32kbs/24kbs/16kbs
-ac 1
output_file.wav //g726标准要求采样率为8k,码率为40kbs/32kbs/24kbs/16kbs
视频格式转换 :
ffmpeg -i input_file.avi -f mp4 -vcodec output_file.mp4 //转换avi格式视频为MP4格式
-f mp4:指定输出视频封装格式为MP4
-vcodec h264:指定输出视频编码格式为h264
截取图片 :(截取视频开始的图片 )
ffmpeg -i input_file.h264
-y // -y:输出文件可以覆盖已存文件
-f image2 // -f image2:输出图像文件编码为image2
-t 0.001 // -t 0.001:持续时间为0.001s
-s 420x272 // -s 420x272:输出图片分辨率420x272
output_file.jpg
合成视频 : (把连续编号的图片文件生成视频 )
ffmpeg -i input_file%d.jpg
-y // -y:输出文件可以覆盖已存文件
-f mp4 // -f mp4:输出视频文件编码为MP4
output_file.mp4
其他例子:
ffmpeg -i input_file.h264
-y
-f image2 // -f image2:输出图像文件编码为image2
-t 1 // 1s内
-s 420x272 // -s 420x272:输出图片分辨率420x272
output_file_%d.jpg
// 截取1s内所有的图像,输出文件按照顺序编号
ffmpeg -i input_file.h264
-y
-f image2
-ss 60 // 60s
-vframes 1 // 一帧
output_file.jpg
//截取60s的一帧视频图片
ffmpeg -i input_file.h264
-y
-f gif // gif
-ss 20 // 20s后
-vframes 30 // 30帧
output_file.jpg // 截取20s后的30帧图片保存为gif
利用ffmpeg实现rtmp推流相关推荐
- 利用ffmpeg实现rtmp推流直播
我们这次利用ffmpeg实现rtmp推流(最终推流地址统一为rtmp://127.0.0.1:1935/live/123) 1.首先下载ffmpeg和ffplay 官方下载链接为:FFmpeg 下载后 ...
- python利用ffmpeg进行rtmp推流直播
思路: opencv读取视频 -> 将视频分割为帧 -> 将每一帧进行需求加工后 -> 将此帧写入pipe管道 -> 利用ffmpeg进行推流直播 pipe管道: 啥是pipe ...
- ffmpeg rtmp 封装发送函数_基于FFmpeg进行RTMP推流(一)
简介 开发环境 FFmpeg sdk下载 项目配置 代码流程 开发环境 vs 2017 FFmpeg sdk下载 下载地址 这里下载3.3.3 - 32bit - share和Dev 8.png Sh ...
- 随身wifi刷debian系统后用ffmpeg进行rtmp推流的一些tip(有关水印和卡顿)
跟风入了随身wifi,虽然只有1.2主频,512内存和4G存储,性能弱鸡,但9块9包邮的价格,立马让它香了起来. 实测,随身wifi的性能用ffmpeg进行rtmp推流毫无压力,cpu和内存占用都极低 ...
- 【FFmpeg】rtmp推流
参考 -参考 编码+rtmp推流 _ffmpeg_process = subprocess.Popen(('/home/ubuntu/encoder/bin/ffmpeg','-re', '-i', ...
- ffmpeg实现rtmp推流(linux环境)
一.安装ffmpeg 参考:linux安装并配置ffmpeg 二.搭建rtmp推流环境 1.下载nginx-rtmp-module nginx-rtmp-module是一个nginx的插件,让ngin ...
- FFmpeg入门 - rtmp推流
FFmpeg入门 - 视频播放_音视频开发老马的博客-CSDN博客介绍了怎样用ffmpeg去播放视频. 里面用于打开视频流的avformat_open_input函数除了打开本地视频之外,实际上也能打 ...
- ffmpeg摄像头Android,Android平台下使用FFmpeg进行RTMP推流(摄像头推流)
简介 今天要给大家介绍如何在Android平台下获取采集的图像,并进行编码推流.同时项目工程也是在之前的代码基础上新增功能 QQ截图20171124114855.png 打开摄像头并设置参数 具体代码 ...
- 【音视频】利用ffmpeg实现:音视频的提取,rtmp推流等
目录 可列出电脑的设备 音频+桌面视频,存mp4 录声音 推流到服务器 音频+桌面视频,推流到服务器 音频+笔记本摄像头,推流到服务器 音频+笔记本摄像头,推流到服务器:通过wvp-pro代+AAC ...
最新文章
- glibc-2.23_malloc_consolidate_浅析
- day03: oracle的sql增 、删、改,事务处理
- 北京地区的网络人口调查
- 【爬虫】beautiful soup笔记(待填坑)
- Asp.net采集用到的幾個方法
- iOS开发系列文章(持续更新……)
- mqtt如何判断设备离线_反渗透纯水设备膜元件如何离线清洗?
- 谷歌Chrome 80稳定版更新:对浏览器进行两项重大的更改
- 冒泡排序,选择排序,插入排序
- imei模拟修改_悟空分身 — 支持位置模拟设备修改
- 最新手机芯片AI跑分出炉:高通、联发科力压华为
- Jmeter怎么连接数据库
- 印刷质量缺陷的视觉检测原理概述
- git 使用代理加速
- 【书影观后感 八】《周期》万事皆周期
- excel概率密度函数公式_用excel怎么制作概率密度图_EXCEL 正态分布公式�9�3
- linux串口 cat,Linux命令操作之cat与cut
- java、vue实现微信网页分享
- 【游戏开发小技】TexturePacker生成的图集逆向切分成精灵小图(json | python | PIL | TextureUnPacker | 逆向 | 切图)
- qq至尊宝抽取小窍门