srs+ffmpeg推流

一、安装srs

srs源代码:https://github.com/ossrs/srs/wiki/v3_CN_Home
安装步骤
1,在合适目录下:git clone -b 3.0release https://gitee.com/ossrs/srs.git
2,cd srs/trunk
3,srs配置文件:vi conf/srs.conf
4,编译:./configure && make
5,启动srs:./objs/srs -c conf/srs.conf
6,查看srs启动状态:./etc/init.d/srs status
7,srs日志:tail -f ./objs/srs.log在这里插入图片描述
8,停止srs进程:ps –ef|grep srs;kill -9 进程

二、安装yasm

1.下载也是yasm安装包:http://yasm.tortall.net/Download.html
2,打开httpfileserver,将本地下载的包上传到linux上
3,解压:tar -xvzf yasm-1.3.0.tar.gz
4,执行命令:cd yasm-1.3.0/
5,编译:./configure;make;make install

三、安装ffmpeg

1,下载ffmpeg安装包:http://ffmpeg.org/download.html#releases
2,打开httpfileserver,将本地下载的包上传到linux上
3,解压:tar -xvzf ffmpeg-4.4.1.tar.gz
4,执行命令:cd ffmpeg-4.2.2/
./configure --enable-shared --prefix=/usr/local/ffmpeg(可以加上 --disable-x86asm 忽略yasm)
make (编译过程会有点长)
make install (会把ffmpeg相关执行程序、头文件、lib库安装在/usr/local/ffmpeg/下)
5,建立软链:ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg
6,增加lib配置:vi /etc/ld.so.conf.d/ffmpeg.conf 内容:/usr/local/ffmpeg/lib
(有些lib源在usr/local/lib里,vi /etc/ld.so.conf 新增一行/usr/local/lib)
7,执行配置:/sbin/ldconfig -v(只执行ldconfig不生效)
8,查看版本:ffmpeg -version
9,如果出现以下问题:先看看缺少的so在哪个目录下,cd进去
在这里插入图片描述
建立软链:ln -s libbz2.so libbz2.so.1.0
在这里插入图片描述

四、使用ffmpeg推流

命令推流

1,推流命令:ffmpeg -re -i source1.mp4 -vcodec copy -acodec copy -f flv -y rtmp://ip:port/live/livestream
2,如果出现以下问题:
问题1
在这里插入图片描述
看看vi /etc/ld.so.conf.d/ffmpeg.conf 配置是否正确

问题2
在这里插入图片描述
可以使用:ffmpeg -re -i source1.mp4 -f flv -y -flvflags no_duration_filesize -use_wallclock_as_timestamps 1 rtmp://ip:port/live/livetest
3,推流成功结果
在这里插入图片描述

脚本推流

1,创建.sh脚本文件
内容:(循环执行,一直推流)

#!/bin/bash
for ((;;))
do
   ffmpeg -re -i source1.mp4 -f flv -y -flvflags no_duration_filesize -use_wallclock_as_timestamps 1 rtmp://ip:port/live/livetest
   sleep 1
done

2,执行:sh pushflow.sh
3,后台执行:nohup bahs pushflow.sh &显示进程号表示后台执行成功
在这里插入图片描述

4,停止推流:ps –ef|grep pushflow;kill -9 进程

五、vlc拉流

1,安装vlc:https://get.videolan.org/vlc/3.0.16/macosx/vlc-3.0.16-intel64.dmg
2,打开vlc,打开文件——打开网络
在这里插入图片描述

3,填入ffmpeg推流的输出流地址:rtmp://ip:port/live/livetest
点击打开,会有一两秒左右延迟,打开一个新的播放页面,可以看到播放的视频是推的流视频
4,vlc可以拉流就表示测试机上的推流成功了

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
对于使用Spring Boot和FFmpeg推送直播流到SRS(Simple Realtime Server)的问题,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了FFmpeg,并且可以在命令行中运行它。 2. 创建一个Spring Boot项目,并添加相关的依赖。在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-ffmpeg</artifactId> <version>4.3.0-1</version> </dependency> ``` 3. 创建一个Controller类,并添加一个接口来处理推送直播流的请求。例如: ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class LiveStreamingController { @Value("${ffmpeg.path}") private String ffmpegPath; @GetMapping("/push-live-stream") public String pushLiveStream() { String input = "your_input_file_or_stream"; String output = "rtmp://your_srs_server/live/your_stream_key"; try { ProcessBuilder processBuilder = new ProcessBuilder(ffmpegPath, "-i", input, "-c:v", "libx264", "-preset", "ultrafast", "-c:a", "aac", "-f", "flv", output); Process process = processBuilder.start(); int exitCode = process.waitFor(); if (exitCode == 0) { return "Live stream pushed successfully"; } else { return "Failed to push live stream"; } } catch (Exception e) { e.printStackTrace(); return "Failed to push live stream due to an exception"; } } } ``` 在这个例子中,我们注入了FFmpeg的路径,并创建了一个推送直播流的接口。你需要根据自己的实际情况修改输入文件或流以及SRS服务器的地址和流密钥。 4. 在application.properties文件中配置FFmpeg的路径: ```properties ffmpeg.path=/path/to/ffmpeg/bin/ffmpeg ``` 确保将上述路径替换为你的实际FFmpeg路径。 5. 运行Spring Boot应用程序,并访问`http://localhost:8080/push-live-stream`来触发推送直播流的请求。 这样,你就可以使用Spring Boot和FFmpeg将直播流推送到SRS服务器了。请注意,这只是一个简单的示例,你可能需要根据实际需求进行更多的配置和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值