这两天研究了FFmpeg发送流媒体的命令,在此简单记录一下以作备忘。

1.      UDP

1.1. 发送H.264裸流至组播地址

注:组播地址指的范围是224.0.0.0—239.255.255.255

下面命令实现了发送H.264裸流“chunwan.h264”至地址udp://233.233.233.223:6666

ffmpeg -re -i chunwan.h264 -vcodec copy -f h264 udp://233.233.233.223:6666

注1:-re一定要加,代表按照帧率发送,否则ffmpeg会一股脑地按最高的效率发送数据。

注2:-vcodec copy要加,否则ffmpeg会重新编码输入的H.264裸流。

1.2. 播放承载H.264裸流的UDP

ffplay -f h264 udp://233.233.233.223:6666

注:需要使用-f说明数据类型是H.264

播放的时候可以加一些参数,比如-max_delay,下面命令将-max_delay设置为100ms:

ffplay -max_delay 100000 -f h264 udp://233.233.233.223:6666

1.3. 发送MPEG2裸流至组播地址

下面的命令实现了读取本地摄像头的数据,编码为MPEG2,发送至地址udp://233.233.233.223:6666。

ffmpeg -re -i chunwan.h264 -vcodec mpeg2video -f mpeg2video udp://233.233.233.223:6666

1.4.  播放MPEG2裸流

指定-vcodec为mpeg2video即可。

ffplay -vcodec mpeg2video udp://233.233.233.223:6666

2.      RTP

2.1. 发送H.264裸流至组播地址。

下面命令实现了发送H.264裸流“chunwan.h264”至地址rtp://233.233.233.223:6666

ffmpeg -re -i chunwan.h264 -vcodec copy -f rtp rtp://233.233.233.223:6666>test.sdp

注1:-re一定要加,代表按照帧率发送,否则ffmpeg会一股脑地按最高的效率发送数据。

注2:-vcodec copy要加,否则ffmpeg会重新编码输入的H.264裸流。

注3:最右边的“>test.sdp”用于将ffmpeg的输出信息存储下来形成一个sdp文件。该文件用于RTP的接收。当不加“>test.sdp”的时候,ffmpeg会直接把sdp信息输出到控制台。将该信息复制出来保存成一个后缀是.sdp文本文件,也是可以用来接收该RTP流的。加上“>test.sdp”后,可以直接把这些sdp信息保存成文本。

2.2. 播放承载H.264裸流的RTP。

ffplay test.sdp

3.      RTMP

3.1. 发送H.264裸流至RTMP服务器(FlashMedia Server,Red5等)

面命令实现了发送H.264裸流“chunwan.h264”至主机为localhost,Application为oflaDemo,Path为livestream的RTMP URL。

ffmpeg -re -i chunwan.h264 -vcodec copy -f flv rtmp://localhost/oflaDemo/livestream

3.2. 播放RTMP

ffplay “rtmp://localhost/oflaDemo/livestream live=1”

注:ffplay播放的RTMP URL最好使用双引号括起来,并在后面添加live=1参数,代表实时流。实际上这个参数是传给了ffmpeg的libRTMP的。

有关RTMP的处理,可以参考文章:ffmpeg处理RTMP流媒体的命令大全

4.      测延时

4.1.测延时

测延时有一种方式,即一路播放发送端视频,另一路播放流媒体接收下来的流。播放发送端的流有2种方式:FFmpeg和FFplay。

通过FFplay播放是一种众所周知的方法,例如:

ffplay -f dshow -i video="Integrated Camera"

即可播放本地名称为“Integrated Camera”的摄像头。

此外通过FFmpeg也可以进行播放,通过指定参数“-f sdl”即可。例如:

ffmpeg -re -i chunwan.h264 -pix_fmt yuv420p –f sdl xxxx.yuv -vcodec copy -f flv rtmp://localhost/oflaDemo/livestream

就可以一边通过SDL播放视频,一边发送视频流至RTMP服务器。

注1:sdl后面指定的xxxx.yuv并不会输出出来。

注2:FFmpeg本身是可以指定多个输出的。本命令相当于指定了两个输出。

播放接收端的方法前文已经提及,在此不再详述。

FFmpeg发送流媒体的命令(UDP,RTP,RTMP)相关推荐

  1. ffmpeg rtmp 封装发送函数_FFmpeg发送流媒体的命令(UDP,RTP,RTMP)

    这两天研究了FFmpeg发送流媒体的命令,在此简单记录一下以作备忘. 1.      UDP 1.1. 发送H.264裸流至组播地址 注:组播地址指的范围是224.0.0.0-239.255.255. ...

  2. ffmpeg处理RTMP流媒体的命令 发送流媒体的命令(UDP,RTP,RTMP)

    将文件当做直播送至live ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName   re限制输出速率,按照 ...

  3. android udp rtp播放器,IjkPlayer For Android(3)-RTP直播硬解码支持

    IjkPlayer播放器其实是支持RTP直播的,但是只能用ffmpeg软解码不能使用硬解码. 这里将会从以下几个方面配置使用 1.UDP RTP/RTMP区别 2.FFMpeg推流 3.IjkPlay ...

  4. 利用ffmpeg进行摄像头提取视频编码为h264通过RTP发送数据到指定的rtp地址

    话不多说命令如下: ffmpeg -f dshow -i video="Logitech QuickCam Easy/Cool" -vcodec libx264 -preset:v ...

  5. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP     参考文档 RFC3550/RFC3551     Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细说明 ...

  6. uni-app VLC多媒体播放器、支持rtsp、rtmp、mms、ftp、udp/rtp等等大多数格式、截图、录制、速率、快进、倒退、音量、视频缩放、视频纵横比、音轨、亮度、全屏

    uni-app VLC多媒体播放器.支持rtsp.rtmp.mms.ftp.udp/rtp等等大多数格式.截图.录制.速率.快进.倒退.音量.视频缩放.视频纵横比.音轨.亮度.全屏: https:// ...

  7. RK3588实战:调用npu加速,yolov5识别图像、ffmpeg发送到rtmp服务器

    前言:最近在学习一些rk3588相关的东西,趁着这个项目,把学习的相关东西整合下,放到一个项目里面,巩固学习的知识. 项目名称:yolov5识别图像.ffmpeg发送到rtmp服务器 功能:1.ope ...

  8. ffmpeg图片与视频命令笔记

    引言 ffmpeg中图片转换 RGB和YUV ffmpeg图片命令 rtmp和rtsp流 一.什么是RTSP 二.RTSP.RTP.RTCP之间关系 三.RTSP交互过程 ffmpeg中视频相关 ff ...

  9. RTP/RTMP/RTSP/RTCP/SRTP/SRTCP等基础协议了解

    文章目录 一.前言 二.RTP 三.RTCP 四.SRTP & SRTCP 五.RTSP 六.RTSP 和RTP的关系 一.前言 实现流媒体实现推流拉流跨平台跨浏览器访问,收集整理了一下相关协 ...

最新文章

  1. UVa1030 Image Is Everything
  2. 应用交付:从技术到服务
  3. Queue+Stack(C++,标准库中的队列和栈)
  4. 逻辑回归的MATLAB实现(二分类问题)
  5. Android自定义属性,format详解
  6. netty系列之:一口多用,使用同一端口运行不同协议
  7. 容器源码分析之HashTable(八)
  8. 十种排序算法的java汇总
  9. java工程开发之图形化界面之(第六课)
  10. 64位 centos 服务器 编译安装 gcc-4.6.2 和 codeviz
  11. vue上传图片时,console.log()图片信息遇到的坑
  12. 计算机网络——CDN加速技术原理
  13. python 矩阵对应元素相乘,python 矩阵对应元素相乘_Numpy——numpy的基本运算
  14. python打印pdf文件_3条指令教会你用python创建中文pdf文件,适合批量打印,附送源码-pdf文件不能打印...
  15. recy拖动item
  16. 一定不要想当然啊!!
  17. 安装一个新的int 9中断例程【在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理】...
  18. android 关闭蓝牙功能,android – 打开和关闭蓝牙?
  19. 计算机科学与技术有哪些证书,计算机科学与技术在职研究生的证书有哪些?
  20. 一文了解黄金票据和白银票据

热门文章

  1. 分享一个在线的HTML5元素在线测验 : HTML5 Element Quiz
  2. (转)Android权限列表permission说明 (一)
  3. Bailian4041 矩阵运算【数学计算】
  4. UVA10014 Simple calculations【数列】
  5. CPU 架构 —— ARM 架构
  6. matlab 机器学习相关函数、api
  7. 半文不白的语言(语气助词)
  8. 天主教、新教、东正教
  9. 比大小 log_2^3 与 log_3^5
  10. Beta 分布的应用