captbaritone/transcode-to-mp3-stream

实时将各种音频格式转换为MP3流

dev-master 2017-09-01 02:58 UTC

This package is auto-updated.

Last update: 2024-09-21 01:39:52 UTC


README

Build Status

将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网站上找到整个录音和更多信息。