ffmpeg命令行拉TCP的RTSP流的方法及使用测试记录——RTP over RTSP(TCP)

2023-05-16

 

1、启动EasyDarwin流媒体服务器,然后启动RTSP推流(1080P + h264编码): 

 ./demo  /dev/video0 1920 1080 0

注:./demo 为本地自写的推流工具。 可以使用VLC或者ffmpeg推RTSP流进行代替。

  • 启动EasyDarwin流媒体服务器:

  • RTSP推流,在流媒体服务器上出现如下图记录,则推流成功:

 

2、拉流播放视频测试:

语法:ffplay -i "拉流地址" -fflags nobuffer
          注:nobuffer为实时播放

使用ffmpeg命令行播放:

ffplay.exe rtsp://172.16.19.67/dev/video0

出图如下:

 

3、FFmpeg 抓流,保存视频

ffmpeg.exe -i rtsp://172.16.19.67/dev/video0 -c copy -f mpegts ts1001.ts

抓流保存文件如下:

 

4、使用多媒体码流分析器ffprobe.exe 查看文件格式:

 ffprobe.exe ts1001.ts

查看结果:

 

5、使用VLC播放抓流存储的ts1001.ts文件 —— 如下,说明已成功抓流存储到本地:

 

6、控制输出文件大小

-fs (file size首字母缩写)
ffmpeg -i input.avi -fs 1024K output.mp4
计算输出文件大小
(视频码率+音频码率) * 时长 /8 = 文件大小K

设置文件输出大小为10M=1024K*10=10240k ,

存储路径:./video_storage ,

存储文件名:  ts008.ts , 命令行如下:

 ffmpeg.exe -y -i rtsp://172.16.19.67/dev/video0 -vcodec copy   -f mpegts -fs 10240k ./video_storage/ts008.ts

 

 

7、录像存储 —— 

rtsp流切割成TS的切片,并生成M3U8索引,视频流hls

ffmpeg.exe -i rtsp://172.16.19.67/dev/video0 -c:v libx264 -hls_time 8 -hls_list_size 0  -strict -2 -f hls video_storage\record.m3u8

命令说明

  • -i 源视频绝对路径
  • -c 视频流和没一片的时间 time这里 8,表示每片8秒时长
  • strict -2 -f hls 存放的绝对路径
  • .m3u8 输入的文件名,不要写数字,顺序容易出错

 

开始切割:

 

切割完成后,索引文件record.m3u8:

record.m3u8内容:

//record.m3u8内容:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.000000,
record0.ts
#EXTINF:10.000000,
record1.ts
#EXTINF:10.000000,
record2.ts
#EXTINF:10.000000,
record3.ts
#EXTINF:10.000000,
record4.ts
#EXTINF:10.000000,
record5.ts
#EXTINF:10.000000,
record6.ts
#EXTINF:10.000000,
record7.ts
#EXTINF:10.000000,
record8.ts
#EXTINF:10.000000,
record9.ts
#EXTINF:10.000000,
record10.ts
#EXTINF:10.000000,
record11.ts
#EXTINF:10.000000,
record12.ts
#EXTINF:10.000000,
record13.ts
#EXTINF:10.000000,
record14.ts
#EXTINF:10.000000,
record15.ts
#EXTINF:10.000000,
record16.ts
#EXTINF:10.000000,
record17.ts
#EXTINF:10.000000,
record18.ts
#EXTINF:10.000000,
record19.ts
#EXTINF:10.000000,
record20.ts
#EXTINF:10.000000,
record21.ts
#EXTINF:10.000000,
record22.ts
#EXTINF:10.000000,
record23.ts
#EXTINF:10.000000,
record24.ts
#EXTINF:10.000000,
record25.ts
#EXTINF:10.000000,
record26.ts
#EXTINF:10.000000,
record27.ts
#EXTINF:10.000000,
record28.ts
#EXTINF:10.000000,
record29.ts
#EXTINF:10.000000,
record30.ts
#EXTINF:10.000000,
record31.ts
#EXTINF:10.000000,
record32.ts
#EXTINF:10.000000,
record33.ts
#EXTINF:10.000000,
record34.ts
#EXTINF:10.000000,
record35.ts

 

 

 

/******************************************* TODU **************************************************/

8、自动存储覆盖

 

 

9、7*24h自动存储覆盖

 

 

 

 

 

******************************************* 补充: **********************************************************//

1 .容器

视频文件本身其实是一个容器(container),里面包括了视频和音频,也可能有字幕等其他内容。
常见的容器格式有以下几种。一般来说,视频文件的后缀名反映了它的容器格式。

  • MP4
  • MKV
  • WebM
  • AVI

查看 FFmpeg 支持的容器

$ ffmpeg -formats

 

2 .编码格式

视频和音频都需要经过编码,才能保存成文件。不同的编码格式(CODEC),有不同的压缩率,会导致文件大小和清晰度的差异。

常用的视频编码

  • H.262
  • H.264
  • H.265

上面的编码格式都是有版权的,但是可以免费使用。此外,还有几种无版权的视频编码格式

  • VP8
  • VP9
  • AV1

常用的音频编码

  • MP3
  • AAC

上面所有这些都是有损的编码格式,编码后会损失一些细节,以换取压缩后较小的文件体积。无损的编码格式压缩出来的文件体积较大,这里就不介绍了,可以查看 FFmpeg 支持的编码格式,视频编码和音频编码.

$ ffmpeg -codecs

 

3 .编码器

编码器(encoders)是实现某种编码格式的库文件。只有安装了某种格式的编码器,才能实现该格式视频/音频的编码和解码。

这是一些 FFmpeg 内置的视频编码器

  • libx264:最流行的开源 H.264 编码器
  • NVENC:基于 NVIDIA GPU 的 H.264 编码器
  • libx265:开源的 HEVC 编码器
  • libvpx:谷歌的 VP8 和 VP9 编码器
  • libaom:AV1 编码器

音频编码器如下

  • libfdk-aac
  • aac

查看 FFmpeg 已安装的编码器

$ ffmpeg -encoders

 

4、查询使用的ffmpeg版本是否支持 CUDA, 命令:

ffmpeg -hwaccels

查询结果:

 

5、测试指定使用cuvid硬件加速,

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i test.mp4 -c:v h264_nvenc -y test_cuda.mp4

 

6、m3u8 与MP4 简单对比:

  • MP4 对HTML5flash播放器亲和度都挺好。但是文件头太大,需要加载完成才能播放,其次结构复杂,长视频的大文件头影响加载速度的视频体验,所以MP4在短视频的应用更常见
  • m3u8 采用苹果的HLS协议,目前 iosandroid设备均已支持。由于其工作原因是将整个视频流分成一个个小的基于Http的文件进行下载播放,因此支持视频直播,和视频加速播放

 

 

 

参考&&致谢:

1、 使用FFmpeg工具进行推流、拉流、截图、变速、转换,及常见问题处理

2、ffmpeg 基本用法 ——  https://www.jianshu.com/p/3c8c4a892f3c

3、 FFmpeg的应用,Web视频解决方案 - 爆胎博客 (itggg.cn)

4、ffmpeg命令参数详解 - 简书 (jianshu.com)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ffmpeg命令行拉TCP的RTSP流的方法及使用测试记录——RTP over RTSP(TCP) 的相关文章

  • FreeBSD下修改安装源的方法

    FreeBSD默认是从官方的源下载软件包的 xff0c 速度比较慢 xff0c 可以修改配置文件指定国内的镜像源来快速安装软件 说明 xff1a FreeBSD中安装软件一般有两种方式 xff1a xff08 一 xff09 使用pk ad
  • sqlite3_bind

    sqlite3 bind text 中绑定的指针 xff0c 在sqlite3 step 时必须存在 xff0c 不能释放 xff0c 否则会是乱码 sqlite3 bind blob中绑定的指针 xff0c 在sqlite3 step 时
  • Windows10 Clion 无法打开文件cudart.lib

    真是巨坑 xff0c 遇到这个问题 xff0c 且耗费两个小时百度 google xff0c 差点放弃换用Visual Studio xff0c 但真实原因竟然这么简单 在你的CmakeList txt中 xff0c 是不是这样添加cuda
  • cf规则介绍

    codeforces的正确打开方式 1 背景 可能很多人都久闻codeforces网站的大名 xff0c 却苦于各种各样的区域性问题或玄学问题 xff0c 没能真正地体验到cf所带来的极致魅力 而网络上关于这方面的博文太少了 xff08 至
  • 使用Buildroot + QEMU构建和运行Linux

    使用Buildroot 43 QEMU构建和运行Linux xunknown 64 2022 04 06 概述 Buildroot是一个用于为嵌入式系统构建完整的Linux系统 xff08 包括Bootloader xff0c Linux
  • openwrt 无线中继设置–固定IP+打印服务器和文件共享

    openwrt 无线中继设置 固定IP 43 打印服务器和文件共享 因为给TPLINK703N xff0c 编译16MROM成功 xff0c 固件里加入了打印服务器和SAMBA VSFTPD USB挂载等功能 xff0c 可使用有线连接上级
  • Linux 终端(TTY)

    原文 xff1a Linux 终端 TTY sparkdev 博客园 Linux 终端 TTY TTY 是 Teletype 或 Teletypewriter 的缩写 xff0c 原来是指电传打字机 xff0c 后来这种设备逐渐键盘和显示器
  • shell命令和变量//区分变量未定义和变量已定义但值为空

    转载 xff1a Shell Command Language 参考 xff1a shell How to check if a variable is set in Bash Stack Overflow 关键 xff1a 形如 para
  • 区分本地终端和ssh远程终端

    如果本地和远端服务器用户名和主机名 xff0c 终端颜色配置都一致 xff0c 通过ssh登陆服务器的时候 xff0c 在本地终端和ssh终端来回切换时 xff0c 傻傻分不清当前终端是本地终端还是ssh远程服务器 下面这个连接介绍了一种方
  • 电路仿真软件Circuit JS1修改菜单字体大小

    在线演示 xff1a https www falstad com circuit circuitjs html 下载地址 xff1a https www falstad com circuit offline circuitjs1 linu
  • Ubuntu 22.04配置samba服务器

    安装samba sudo apt install samba 可以验证一下安装结果 xff1a smbd version 创建samba用户密码 创建samba用户 xff08 可选 xff09 xff1a sudo adduser sys
  • 一个查找文件的类:它的长处在于能够搜索子目录并且是可控制的

    find file cpp Defines the entry point for the console application include 34 stdafx h 34 测试需要的头文件 include lt conio h gt
  • Clearwater IMS All-in-one环境搭建指导书

    xunknown 64 163 com 2015 01 13 一 前言 Clearwater IMS 是一个开源的 IMS 项目 提供 VoIP SIP 电话等功能 Clearwater IMS 主页 http www projectcle
  • Clearwater IMS All-in-one环境搭建指导书

    xunknown 64 163 com 2015 01 13 一 前言 Clearwater IMS 是一个开源的 IMS 项目 提供 VoIP SIP 电话等功能 Clearwater IMS 主页 http www projectcle
  • Sublime Text3注册码(亲测可用 2019-11-19)

    转自博客中的朋友的 xff0c 用于保存 适用于Sublime Text2同时也适用于Sublime Text3 1 打开本地hosts文件 Windows路径是C Windows System32 drivers etc MacOS路径是
  • H3C配置多区域OSPF实验

    一 先上拓扑 xff1a 二 实验环境 xff1a Windows 10 xff08 21H1 xff09 xff0c HCL版本 xff1a V3 0 1 xff08 华三模拟器 xff09 三 实验需求 xff1a SWA SWB SW
  • 配置mysql使用ssl连接,配置java连接mysql使用ssl

    查看mysql是否支持ssl连接 show variables like 39 ssl 39 生成服务器端 openssl genrsa 2048 gt ca key pem openssl req sha1 new x509 nodes
  • Python中的命名规范

    变量命名准则 您应当尽量使自己的变量命名含义清晰 xff0c 不要使用混乱的字母 数字 表情等意义不明的字符来命名变量一般来说 xff0c 您不应当使自己的风格频发变换 如果可能 xff0c 请将整个项目保持统一风格此文章根据本人习惯与编码
  • Linux下达梦数据库的安装与卸载

    文章目录 Linux下达梦数据库的安装与卸载1 安装前准备工作1 1 下载安装包1 2 检查Linux Unix 系统信息1 3 创建安装用户1 4 Linux Unix 下检查操作系统限制1 5 设置JAVA环境 2 安装DM2 1 解压
  • 递归算法实现角谷定理

    问题重述 xff1a 角谷定理 输入一个自然数 xff0c 若为偶数 xff0c 则把它除以 2 xff0c 若为奇数 xff0c 则把它乘以 3 加 1 经过如此有限次运算后 xff0c 总可以得到自然数值 1 求经过多少次可得到自然数

随机推荐

  • windows系统关闭node进程

    taskkill f t im node exe Node js是一个开源的 跨平台的JavaScript运行时环境 xff0c 它允许开发者在服务器端使用JavaScript进行编程 Node js的诞生极大地扩展了JavaScript的
  • 我的GPT-4 API 接入之旅

    3月15日open ai推出GPT 4 https platform openai com docs models gpt 4 chatgpt免费体验入口 xff1a http chat xutongbao top 需要排队 28号加入等候
  • IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

    git exe pull progress v no rebase 34 origin 34 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 6
  • 制作高清chatgpt logo

    lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta http equiv 61 34 X U
  • react开发前端登录、注册、找回密码页面的详细教程

    登录 注册 找回密码是前端项目经常遇到的需求 光标自动定位到输入框 回车登录 图形验证码 邮箱验证码 60秒倒计时 字段校验 字段提示语 上传头像 密码显示隐藏这些功能都会在本文中详细介绍 xff0c 注意 使用的ui库是antd 目录 光
  • azure windows服务器,远程桌面链接,ftp文件上传下载

    解决方案 xff1a FTP 安装filezilla 打开21端口 参考链接 xff1a Windows11 10 使用RDP远程桌面时提示 您的凭据不工作 登录没有成功可能的一种原因 CSDN博客 使用 SSH 连接到运行 Windows
  • LED的使用纯汇编和C语言的点亮

    概述 我们通过观察原理图可以发现LED灯有四个分别连接在GPM4 1 GPM4 2 GPM4 3 GPM4 4上面 xff0c 这时候我们去查询我们板子4412的说明书 xff0c 去寻址寄存器的配置 初始化的时候我们需要将他配置为输出模式
  • Promise异步编程

    目录 一 Promise的含义 二 基本用法 三 reject的用法 四 执行顺序 五 项目中使用promise获取后端数据 六 catch的用法 七 finally的用法 八 Promise all 九 Promise all 有一个是失
  • 介绍一下ES6 promise

    ES6 Promise 是 ECMAScript 2015 xff08 简称 ES6 xff09 引入的一种处理异步操作的编程模式 Promise 可以简化异步编程 xff0c 并使代码更易于维护 一个 Promise 对象代表一个尚未完成
  • ChatGPT的N种用法(持续更新中。。。)

    目录 前言 一 写代码 二 给软件系统命名 三 查询发展历史 四 写英语短文 五 入党申请报告指导 国企员工思想汇报 六 给小孩起名字 七 给小说写推荐阅读 八 根据小说生成剧本 九 写离婚协议 十 翻译 十一 润色文章 十二 用英文撰写电
  • ChatGPT资料汇总学习

    x1f9e0 Awesome ChatGPT ChatGPT资料汇总学习 xff0c 持续更新 ChatGPT再一次掀起了AI的热潮 xff0c 是否还会像BERT一样成为AI进程上的里程碑事件 xff0c 还是噱头炒作 xff0c 持续关
  • Stable Diffusion 本地部署教程不完全指南

    ChatGPT免费体验入口网址 http chat xutongbao top 参考链接 xff1a ERROR Could not find a version that satisfies the requirement torch 6
  • Stable Diffusion +ChatGPT+文本转语音+剪映制作视频

    目录 chatgpt免费体验入口网址 模型下载 huggingface co civitai com 使用Deliberate模型案例 StableDeffusion做的图片 xff0c chatGPT出的文案 xff0c 微软文本转语音配
  • 如何使用 ChatGPT 生成 Stable diffusion 提示词

    chatgpt免费体验入口网址 xff1a http chat xutongbao top 一 教chatgpt写提示词 StableDiffusion是一款利用深度学习的文生图模型 xff0c 支持通过使用提示词来产生新的图像 xff0c
  • Stable Diffusion+Deliberate模型绘制图片

    chatgpt免费体验入口网址 xff1a http chat xutongbao top 正向提示词 1 chinese gril with headphones natural skin texture 24mm 4k textures
  • prompt交易平台

    chatgpt免费体验入口网址 xff1a http chat xutongbao top prompt交易平台 https promptbase com prompt需要花钱购买 也可以售卖自己的prompt 关注公众号领福利
  • New Bing来了

    chatgpt免费体验入口网址 xff1a http chat xutongbao top 参考链接 xff1a https mp weixin qq com s x8RUxofqS43xkZM 5xnTAw
  • select监听多个socket的例子

    先贴上代码 xff0c 回头再仔细编辑 server cpp include lt sys types h gt include lt sys socket h gt include lt netinet in h gt include l
  • chatgpt提示词

    chatgpt免费入口 http chat xutongbao top 担任雅思写作考官 我希望你假定自己是雅思写作考官 xff0c 根据雅思评判标准 xff0c 按我给你的雅思考题和对应答案给我评分 xff0c 并且按照雅思写作评分细则给
  • ffmpeg命令行拉TCP的RTSP流的方法及使用测试记录——RTP over RTSP(TCP)

    1 启动EasyDarwin流媒体服务器 xff0c 然后启动RTSP推流 xff08 1080P 43 h264编码 xff09 xff1a demo dev video0 1920 1080 0 注 xff1a demo 为本地自写的推