captbaritone / transcode-to-mp3-stream
实时将各种音频格式转换为MP3流
Requires
- php: >=5.3.0
Requires (Dev)
- mockery/mockery: dev-master
This package is auto-updated.
Last update: 2024-09-21 01:39:52 UTC
README
将ffmpeg能读取的任何媒体文件实时转换为MP3流,这些流可以在任何现代浏览器中本地播放。该库处理生成正确头部的繁琐要求,并依赖于ffmpeg进行实际的转换。
适用于您拥有大量音频文件,希望用户能够流式传输,但又不想提前将所有文件进行转码的情况。
与HTML5/JS音频播放器(如audio.js)配合良好。
状态
测试版。此包正在运行,但仍可能存在一些问题需要解决。
依赖项
我们需要对ffmpeg
的shell访问权限,以及用于MP3编码的lame
编解码器。我们还需要一个较新的ffprobe
版本(它包含在ffmpeg
中)。但是,Ubuntu仓库中的当前版本还不够新。我稍后会更新相关信息。
在Ubuntu上,以下包对我很有用
sudo apt-get install ffmpeg
sudo apt-get install libavcodec-extra-53
安装
将此行添加到您的composer.json
文件中的"require"部分
"captbaritone/transcode-to-mp3-stream": "dev-master"
然后在项目目录中运行命令行
composer update
使用方法
我假设您已经通过composer安装了此包。
您可能需要的唯一方法是Mp3Stream
对象上的output()
方法。它接受以下参数,其中只有第一个是必需的
$sourceMedia
要转码的文件路径$outputFilename
转码输出的文件名$kbps
编码输出时的恒定比特率(每秒比特数)$start
我们想要开始的时间点(以秒为单位)$end
我们想要停止的时间点(以秒为单位)
简单用法
<?php
use Captbaritone\TranscodeToMp3Stream\Mp3Stream;
$mp3Stream = new Mp3Stream();
$mp3Stream->output('example.flac');
示例
请参阅example.php
以了解如何使用此脚本的示例。
如果您有足够的PHP版本,您可以在终端中执行以下操作进行测试...
cd /path/to/transcode-to-mp3-stream
php -S localhost:9000 example.php
...然后在浏览器中打开https://:8000
。
测试
假设您已经全局安装了composer和phpunit
git clone git@github.com:captbaritone/transcode-to-mp3-stream.git
cd transcode-to-mp3-stream
composer --dev install
phpunit
帮助/问题
如果您有任何问题或遇到困难,请告知我:jordan@jordaneldredge.com。
许可证
本项目根据MIT许可证发布。示例音频文件是J.S. Bach的《Goldberg Variations》的Creative Commons记录的摘录。您可以在Open Goldberg Variations网站上找到整个录音和更多信息。