36.FFmpeg+OpenCV直播推流(搭建crtmpserver服务器并使用ffmepg,vlc测试推流播放)

简介: 开发环境 Ubuntu 16 64位+Windows10 开发过程 1.登录Ubuntu切换到root用户(减少权限问题),执行以下命令 apt update 它的作用是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
开发环境

Ubuntu 16 64位+Windows10

开发过程

1.登录Ubuntu切换到root用户(减少权限问题),执行以下命令

apt update

它的作用是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。它只是更新了apt的资源列表,没有真正的对系统执行更新。如果需要,要使用apt-get upgrade来更新

2.源更新之后,开始下载crtmpserver

wget https://codeload.github.com/j0sh/crtmpserver/zip/centosinit

下载完成后,在目录下可以看到如下

root@ubuntu:~# ls
centosinit

3.我们需要openssh网络协议的支持,执行以下命令下载libssl-dev

apt install libssl-dev

libssl-dev是OpenSSL通用库。SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。
4.然后我们需要解压crtspserver,解压需要使用unzip,如果没有安装,就先安装

apt install unzip
unzip crtmpserver

5.解压成功之后进入crtmpserver的以下目录中

root@ubuntu:~/crtmpserver-centosinit/builders/cmake# ls
androidapplestreaming  CMakeFiles           common               lua              run      toolchain-sourcery_g++_lite.cmake  vmtests
applications           cmake_find_modules   crtmpserver          Makefile         tests    trafficdissector
cleanup.sh             cmake_install.cmake  debianpackage.patch  package.sh       thelib   vg.sh
CMakeCache.txt         CMakeLists.txt       ltib                 precompiled.gch  tinyxml  vm

执行命令

cmake .

命令执行成功的前提是g++已经被安装,如果没有,则会提示错误,通过以下命令安装

apt install g++

6.cmake .命令执行完之后,在同样的目录下执行make命令

make

make的执行基于CMakeLists文件的存在,所以,这也是需要在这个目录下执行的原因
7.make编译完成之后,我们就可以开启crtmpserver服务器了,执行下边的命令

./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua

执行后可以看到服务器已经开启的画面
crtmpserver服务器开启.png
此时服务器已经进入了接收推流的状态
8.接下来,我们使用ffmpeg命令行推流试试

ffmpeg -i path(视频文件地址) -f flv rtmp://192.168.1.1:1932/live/test

-i 指定视频路径
-f 执行格式,推流使用flv,及时你的是mp4,你也不能使用-f mp4
192.168.1.1是你Ubuntu的ip地址,1932是crtmpserver的端口号,可以从上边的图上看到

执行后,我们打开vlc播放器将这个地址输入到这里,点击媒体->打开网络串流
打开网络串流.png
输入这个地址,可以看到视频正常播放了
9.可能存在的几个问题
a.视频非常模糊

因为ffmepg对视频编码进行了处理,我们将推流的命令改为
ffmpeg -i  文件 -f flv -c copy rtmp:.....

可以看到清晰了很多,这是因为做了直接copy处理
b.你的视频地址输入vlc中,没有播放

如果此时服务器正常,推流也正常的情况下,这种情况,可能是推流已经结束了,所以要看到视频需要保证你接收推流的时间一定要在推流没有结束之前进行,也就是看你手速了,短视频很快就推完了
相关文章
|
8月前
|
存储 缓存 编解码
【FFmpeg 视频播放】深入理解多媒体播放:同步策略、缓冲技术与性能优化(一)
【FFmpeg 视频播放】深入理解多媒体播放:同步策略、缓冲技术与性能优化
395 0
|
3月前
|
应用服务中间件 Linux nginx
FFmpeg学习笔记(一):实现rtsp推流rtmp以及ffplay完成拉流操作
这篇博客介绍了如何使用FFmpeg实现RTSP推流到RTMP服务器,并使用ffplay进行拉流操作,包括在Windows和Linux系统下的命令示例,以及如何通过HTML页面显示视频流。
695 0
|
3月前
|
缓存 并行计算 Ubuntu
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
本文是关于在Jetson AGX Xavier上编译FFmpeg(3.4.1)和OpenCV(3.4.0)的详细教程,包括编译需求、步骤、测试和可能遇到的问题及其解决方案。还提供了Jetson AGX Xavier编译CUDA版本的OpenCV 4.5.0的相关信息。
127 4
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
|
3月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
281 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
3月前
|
XML 开发工具 Android开发
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
ExoPlayer最初是为了解决Android早期MediaPlayer控件对网络视频兼容性差的问题而推出的。现在,Android官方已将其升级并纳入Jetpack的Media3库,使其成为音视频操作的统一引擎。新版ExoPlayer支持多种协议,解决了设备和系统碎片化问题,可在整个Android生态中一致运行。通过修改`build.gradle`文件、布局文件及Activity代码,并添加必要的权限,即可集成并使用ExoPlayer进行网络视频播放。具体步骤包括引入依赖库、配置播放界面、编写播放逻辑以及添加互联网访问权限。
245 1
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
|
3月前
|
网络协议 应用服务中间件 nginx
FFmpeg错误笔记(一):nginx-rtmp-module推流出现 Server error: Already publishing
这篇文章讨论了在使用nginx-rtmp-module进行RTMP推流时遇到的“Server error: Already publishing”错误,分析了错误原因,并提供了详细的解决办法,包括修改nginx配置文件和终止异常的TCP连接。
284 0
FFmpeg错误笔记(一):nginx-rtmp-module推流出现 Server error: Already publishing
|
3月前
FFmpeg学习笔记(二):多线程rtsp推流和ffplay拉流操作,并储存为多路avi格式的视频
这篇博客主要介绍了如何使用FFmpeg进行多线程RTSP推流和ffplay拉流操作,以及如何将视频流保存为多路AVI格式的视频文件。
496 0
|
3月前
|
安全 Linux 网络安全
Kali渗透测试:自动播放文件攻击
Kali渗透测试:自动播放文件攻击
51 0
|
5月前
|
编解码 Java Android开发
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。另一款APP直播框架RTMP Streamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRT Streamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMP Streamer的说明参见之前的文章《使用RTMP Streamer开启APP直播推流》,下面介绍如何使用SRT Streamer开启手机直播。
106 4
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
|
6月前
|
视频直播 Windows
FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流
《FFmpeg开发实战》书中介绍了直播中的RTSP、RTMP和SRT协议,SRT提供更低延迟和稳定性。FFmpeg从4.0版起支持SRT,OBS Studio和MediaMTX等工具也已支持。在Windows环境下,通过集成libsrt的FFmpeg,可以建立SRT直播系统。MediaMTX日志显示SRT服务监听8890端口,OBS Studio设置SRT推流至"publish:live"。ffplay和VLC通过"read:live"拉流成功,验证了SRT推拉流功能。更多详情见《FFmpeg开发实战:从零基础到短视频上线》。
218 2
FFmpeg开发笔记(四十一)结合OBS与MediaMTX实现SRT直播推流

热门文章

最新文章