7×24无人值守直播推流软件开发实战,一文为你揭开视频推流的底层原理(附源码)

这篇具有很好参考价值的文章主要介绍了7×24无人值守直播推流软件开发实战,一文为你揭开视频推流的底层原理(附源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

你有看到过那种不间断型的、循环播放视频音乐的直播间吗?或者那种直播播放电影的直播间?还有层出不穷的文章,类似如下标题:

“如何搭建一个24小时不间断的直播间?躺入xxxx元!”

“24小时电影直播间,每天到账xxx~xxxx,不出镜副业,人人可做!”

“50块的云服务器直播推流让我月入过千?轻轻松松打造一个属于自己的被动收入”

“无人直播循环播放x个小时羊了个羊累计成交额xxxx元”

看到这些文章标题,是不是心动了?慢着,本文不是要写如何使用这些技术赚钱,而是探索这些赚钱的技术到底是啥原理、是怎么做到的。

二、术语

直播:打开直播软件,然后一个人对着摄像头,拿着麦克风,穿着超短裙,翩翩起舞,然后咱们开心的欣赏。

直播推流:一个人对着摄像头,拿着麦克风,穿着超短裙,翩翩起舞,并使用第三方软件将实时画面推到直播间,然后咱们开心的欣赏。

无人值守直播推流:提前把视频录制好,保存成文件,比如mp4,想要开播的时候,使用自研软件把这个mp4文件推给我们开心的欣赏。

以上有啥不同呢?简单来说,正常的直播:我们看直播的时候,主播正在跳;无人值守直播:我们看直播的时候,主播实际正在睡大觉。

三、需求

基于以上分析,我们开发一个软件,只要我们准备好要播出的视频:

想什么时间播就什么时间播;

想重复播放几遍就重复播放几遍;

直播的时候,我们可以去睡觉、撸啊撸、约会、上班......

四、分析

我们以B站为例,来分析该如何实现以上软件。

打开B站开播设置,我们注意下面红框中的说明,实际上可以将我们要开发的软件看做是“第三方软件”,红框中提到的服务器地址和推流码,就是我们要用到的参数。通俗的理解为,我们将准备好的视频数据,推到这个服务器地址,即可实现实时直播的能力。

7×24无人值守直播推流软件开发实战,一文为你揭开视频推流的底层原理(附源码)

我们点击“开始直播”,可以看到下图红框里的内容,即是我们需要的服务器地址和密码:

7×24无人值守直播推流软件开发实战,一文为你揭开视频推流的底层原理(附源码)

接下来该如何推流呢?轮到大名鼎鼎的ffmpeg上场了。这是一个功能强大的,可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,这个工具技术成分太高了,具体有多高,我估计得有三四层楼那么高。

所以,到目前为止,我们的直播推流实现步骤就确定了:

第一步、把视频提前制作好

第二步、安装ffmpeg软件

第三步、找到我们的推流服务器和秘钥

第四步、调用ffmpeg的功能,将视频推到直播间去

第五步、把冰箱门关上......,不是,欣赏一下我们的直播间

五、编码

以上的实现方案确定了,编码阶段是最简单的,咱们可以使用任何语言进行编码实现,甚至使用几条CMD命令或Shell命令都能实现。

接下来我使用Java实现,顺便做一个“友好的”配置界面:

7×24无人值守直播推流软件开发实战,一文为你揭开视频推流的底层原理(附源码)

页面代码就不贴了,下面是后端代码:

@RequestMapping("/live")
@ResponseBody
public Result<String> live(@RequestBody LiveConfig live){
    List<String> commands = new ArrayList<>();
    commands.add(ffmpegPath);
    commands.add("-re");
    commands.add("-stream_loop");
    commands.add(live.getLoop().toString());
    commands.add("-i");
    commands.add(baseDir+"/test.mp4");
    commands.add("-vcodec");
    commands.add("copy");
    commands.add("-acodec");
    commands.add("copy");
    commands.add("-f");
    commands.add("flv");
    commands.add(live.getUrl()+live.getSecret());
    logger.info(StringUtils.join(commands," "));
    ProcessBuilder builder = new ProcessBuilder();
    builder.redirectErrorStream(true);
    builder.command(commands);
    Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            InputStream inputStream = null;
            try {
                Process process = builder.start();
                inputStream = process.getInputStream();
                logger.info("开始推流");
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                String line;
                while ((line = reader.readLine()) != null) {
                    logger.info(line);
                }
                int result=process.waitFor();
                logger.info("推流结果:{}",result);
            } catch (Exception e) {
                logger.info("推流失败:{}", ExceptionUtils.getStackTrace(e));
            }finally {
                if (inputStream != null){
                    try {
                        inputStream.close();
                    } catch (IOException e) {

                    }
                }
            }
        }
    });
    thread.start();
    return Result.success(null);
}

我的直播间就这样愉快的开播了:

7×24无人值守直播推流软件开发实战,一文为你揭开视频推流的底层原理(附源码)

六、部署

接下来部署到我的腾讯云,让我的无人值守直播间开播吧,它会无休无止的播、吃饭播、睡觉播、工作播、运动播......反正就是各种播。

我手上本来就有一台腾讯云服务器,直接拿来用即可。作为一个程序员,云服务器现在应该是标配了,学生可以用来学习,菜鸟可以用来练手,老鸟玩点有趣的东西偶尔赚点小钱。你如果想买一台云服务器来玩儿,链接直达:

https://cloud.tencent.com/act/cps/redirect?redirect=5186&cps_key=814b8b5d55ef58acc94a1b6bf43d5a2b&from=console

七、总结

无人值守、直播推流听起来高大上,实际上,就这么两点:

第一、拿到推流接口

第二、上ffmpeg,开推

本次分享就到这里,赶紧开启你的无人值守直播吧。

源码猛点(免积分):https://download.csdn.net/download/u012071890/88437963

或者这里:https://github.com/shenmejianghu/bili-downloader

 文章来源地址https://www.toymoban.com/news/detail-711550.html

到了这里,关于7×24无人值守直播推流软件开发实战,一文为你揭开视频推流的底层原理(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 直播推流神器 Kplayer 手把手教你在B站7*24h全天直播

    Linux服务器 (1)KPlayer目前仅支持Linux环境并需要满足x86_64(amd64)与aarch64(arm64)CPU架构的硬件环境上运行,我们已经将相关依赖库静态链接至主程序中,这意味着你不需要额外的安装任何的第三方库来支持KPlayer的运行。 在后续的迭代版本中将会陆续针对不同CPU架构与不同的操作系

    2024年02月04日
    浏览(30)
  • 心得:大疆无人机RTMP推流直播(Windows版本已成功)

    1、nginx的Gryphon版本,它内部已经集成了rtmp的推流编译(nginx-Gryphon) 2、服务器状态检查程序stat.xsl(nginx-rtmp-module) 3、ffmpeg(ffmpeg) 4、VLC(VLC) 1、将下载好的nginx 1.7.11.3 Gryphon解压修改文件名为nginx-1.7.11.3-Gryphon,绝对路径中不能有中文,必须全为英文! 2、在根目录中的con

    2024年02月03日
    浏览(52)
  • QT开发实战-动态壁纸软件

    项目源代码在下面链接获取: ----------------------------- 开发者:CodeSharkSJ 希望此项目能加强你对Qt的应用 文章目录 项目图与开发环境 核心技术原理 自定义窗口程序 UI布局 背景绘制 样式表 基本实现 QWebEngine QMedia使用 系统托盘隐藏 记忆功能 应用程序打包 开发环境: visual studio 2

    2024年02月05日
    浏览(51)
  • Windows环境下使用VLC获取到大疆无人机的RTMP直播推流

    下载地址:http://nginx-win.ecsds.eu/download/ 下载nginx 1.7.11.3 Gryphon.zip,解压后修改文件夹名称为nginx-1.7.11.3-Gryphon; 下载地址:GitHub - arut/nginx-rtmp-module: NGINX-based Media Streaming Server 将nginx-rtmp-module-master.zip解压后复制到目录nginx-1.7.11.3-Gryphon下; 打开nginx-1.7.11.3-Gryphonconf目录下面的

    2024年02月05日
    浏览(55)
  • 四、搭建 FFmpeg,实战直播推流

    目录 1、FFmpeg 简介 2、FFmpeg 项目组成 3、使用 ffmpeg 的方式分为两种: 5、FFmpeg 命令行

    2024年04月28日
    浏览(33)
  • 六、Java+FFmpeg,实战直播推流

    目录 类 JavaFFmepegTest run() 方法 openFFmpegExe() 方法 main() 方法 总结

    2024年04月29日
    浏览(36)
  • GitHub排名第一《lntellij IDEA软件开发与应用实战手册》限时开源

    IntelliJ IDEA简称IDEA,是Java语言的集成开发环境,在业界被公认为是最好的Java开发工具之一 讲解IntelliJ IDEA的诸多使用技巧,但事实上想要覆盖所有的操作要点是不可能的事情,因此笔者挑选了一些需要掌握及建议掌握的知识内容。 本章主要对IntelliJ IDEA进行了简要的特性描述

    2024年04月16日
    浏览(47)
  • 《实战AI低代码》:普元智能化低代码开发平台发布,结合专有模型大幅提升软件生产力

    在7月6日举办的“低代码+AI”产品战略发布会上,普元智能化低代码开发平台正式发布。该平台融合了普元自主研发的专有模型,同时也接入了多款AI大模型的功能。它提供了一系列低代码产品,包括中间件、业务分析、应用开发、数据中台和业务流程自动化等,旨在简化企业

    2024年02月16日
    浏览(89)
  • 手机无人直播软件,有哪些优势?

    近年来,随着手机直播的流行和直播带货的市场越来越大, 手机无人直播软件 成为许多商家开播带货的首选。在这个领域里, 声音人无人直播系统 以其独特的优势,成为市场上备受瞩目的产品。接下来,我们将探讨手机无人直播软件给直播市场带来的是哪些优势?  专做手

    2024年02月11日
    浏览(41)
  • 手机无人直播手机用哪些软件系统最好?

    最近 手机无人直播 可是风靡大江南北,只要是一个抖音用户都想装个手机无人直播软件,随时随地开启手机无人直播,抖音8亿用户想想这个市场得有多大,蛋糕有多肥。 那么问题来了,手机无人直播手机用啥软件? 推荐:魔棒直播 这里有多个理由我们还必须要选择它;

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包