centric / centric-livestreaming
适用于各种在线网络的直播流包
Requires
- php: >=8.0
- ext-fileinfo: *
- doctrine/doctrine-bundle: ^2.0
- doctrine/orm: ^2.7
- google/apiclient: ^2.7
- google/apiclient-services: *
- martin1982/facebook-graph-sdk: ^7.0.1
- psr/log: ^2.0
- react/event-loop: ^1.1
- symfony/console: ^5.4|^6.0
- symfony/framework-bundle: ^5.4|^6.0
- symfony/http-kernel: ^5.4|^6.0
- symfony/messenger: ^5.4|^6.0
- symfony/monolog-bundle: ^3.5
- symfony/validator: ^5.4|^6.0
- symfony/yaml: ^5.4|^6.0
Requires (Dev)
- doctrine/doctrine-migrations-bundle: ^3.0
- escapestudios/symfony2-coding-standard: ^3.1
- friendsofphp/php-cs-fixer: ^3.6
- guzzlehttp/guzzle: ^7.0
- phpmd/phpmd: ^2.12
- phpunit/phpunit: ^9.0|^10.0
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.5
Suggests
- doctrine/doctrine-migrations-bundle: Keep track of updated entities in your database
This package is not auto-updated.
Last update: 2024-09-23 10:41:56 UTC
README
目录
关于
Live Broadcast Bundle可以使您能够将直播视频流计划到各种网站/应用程序,如Twitch、YouTube Live、Facebook Live。
您可以从各种输入进行直播。此包支持文件、URL或现有的RTMP流。
有关更多信息,您可以查看下面的最新记录演示,检查GitHub上的演示项目https://github.com/Martin1982/live-broadcast-demo或继续阅读;
先决条件
要测试这些先决条件,可以在以下安装描述之后使用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前端界面,要使用管理包,您可以选择您喜欢的;
- Sonata Admin: https://github.com/Martin1982/live-broadcast-sonata-admin-bundle
- Easyadmin: https://github.com/Martin1982/live-broadcast-easyadmin-bundle