martin1982/live-broadcast-bundle

用于直播到各种在线网络的套餐

安装次数: 2,421

依赖: 2

建议者: 0

安全: 0

星标: 46

关注者: 6

分支: 19

公开问题: 7

类型:symfony-bundle

v7.0.5 2023-05-26 10:28 UTC

README

Build status Latest stable version

License Total downloads

目录

关于

Live Broadcast Bundle可以使您能够计划向Twitch、YouTube Live、Facebook Live等网站/应用程序进行直播视频流。

您可以从各种输入进行直播。此包支持文件、URL或现有的RTMP流。

有关更多信息,您可以在下面的最新记录演示中查看,检查https://github.com/Martin1982/live-broadcast-demo的演示项目,或继续阅读;

IMAGE ALT TEXT

先决条件

要测试这些先决条件,可以在以下安装描述之后使用Symfony命令livebroadcaster:test:shell。如果您想手动检查,广播器需要在操作系统上运行一些命令;

所有操作系统

  • ffmpeg 3.x或更高版本

在Linux上

  • ps
  • kill

在Mac上

  • ps
  • grep
  • kill

在Windows上

  • tasklist
  • taskkill

基本安装

此套餐可在Packagist上找到。然后您可以使用Composer安装它

$ composer require martin1982/live-broadcast-bundle

使用Doctrine更新广播实体数据库模式,当升级时,建议使用迁移。

要启动广播调度程序,您可以运行以下命令

$ php bin/console livebroadcaster:broadcast

要作为长时间运行的过程运行调度程序,建议使用messenger中间件来保持数据库连接,如https://symfony.com.cn/doc/current/messenger.html中所述

FFMpeg日志目录

要查看FFMpeg的输出,您需要在您的config/packages/live_broadcast.yaml中配置一个日志目录。

 live_broadcast:
    ffmpeg:
        log_directory: '%kernel.logs_dir%'

事件循环

您可以使用此配置来设置事件循环计时器

live_broadcast:
    eventloop:
        timer: 5

缩略图设置

为缩略图设置以下配置

live_broadcast:
    thumbnail:
        upload_directory: '%kernel.project_dir%/public/uploads/thumbnails'
        web_path: '/uploads/thumbnails'

启用Facebook直播

https://developers.facebook.com上创建一个Facebook应用程序,并具有以下权限

  • user_videos
  • user_events
  • user_managed_groups
  • manage_pages
  • publish_actions
  • 实时视频API

使用以下配置编辑您的config/packages/live_broadcast.yaml

live_broadcast:
    facebook:
        application_id: YourFacebookAppId
        application_secret: YourFacebookAppSecret

启用YouTube直播

登录到https://console.developers.google.com/并启用“YouTube Data API v3”。

将YouTube API信息添加到您的config.yml

live_broadcast:
    youtube:
        client_id: YourGoogleOauthClientId
        client_secret: YourGoogleOauthClientSecret

将以下行添加到您的parameters.yml(用于生成缩略图URL)

parameters:
    router.request_context.host: broadcast.com
    router.request_context.scheme: https

添加新的输出平台

在Entity/Channel中创建一个新的Channel实体,该实体扩展了AbstractChannel(例如ChannelNew)

在Service/StreamOutput中创建一个新的StreamOutput服务,该服务实现了OutputInterface(例如OutputNew)

使用输出标签在config/services.yml中配置服务

live.broadcast.output.new:
    class: Martin1982\LiveBroadcastBundle\Service\StreamOutput\OutputNew
    tags:
        - { name: live.broadcast.output, platform: 'New' }

使用管理GUI

此套餐不包含Web前端界面,要使用管理包,您可以挑选您喜欢的:

赞助商