laravel-ffmpegはインストール済みとする。
use Illuminate\Support\Facades\Storage;//ファイルのリネームと削除で必要
//ffmpeg関連
use FFMpeg;
use FFMpeg\Format\VideoInterface;
use FFMpeg\Media\Video;
use ProtoneMedia\LaravelFFMpeg\Filters\WatermarkFactory;
use ProtoneMedia\LaravelFFMpeg\Filters\WatermarkFilter;
use ProtoneMedia\LaravelFFMpeg\Filesystem\Media;
public function getAudioInfo(){
$file = 'private/hogehoge.wav'; //ファイルパス
$media = FFMpeg::open($file);
$mediaStreams = $media->getStreams()[0];
$info=array(
'time'=>$this->sToM($media->getDurationInSeconds()), //総再生時間(長さ)
'channels'=>$mediaStreams->get('channels'),//チャンネル数(ステレオなら2となる)
'sampringlate'=>$mediaStreams->get('sample_rate'), //サンプリングレート
'bitrate'=>$mediaStreams->get('bit_rate')/$mediaStreams->get('sample_rate')/$mediaStreams->get('channels'),//ビットレート
);
return $info;
}
いろいろ取得したけど、こんな感じになる。
総再生時間(長さ)
$file = 'private/hogehoge.wav'; //ファイルパス
$media = FFMpeg::open($file);
return $media->getDurationInSeconds() //総再生時間(長さ)
結果:36
など秒数で返ってくる。
チャンネル数
$file = 'private/hogehoge.wav'; //ファイルパス
$media = FFMpeg::open($file);
$mediaStreams = $media->getStreams()[0];
return >$mediaStreams->get('channels')
ステレオなら2が返る
モノラルなら1(試してないけど)
サンプリングレート
$file = 'private/hogehoge.wav'; //ファイルパス
$media = FFMpeg::open($file);
$mediaStreams = $media->getStreams()[0];
return $mediaStreams->get('sample_rate')
結果:441000
など数値が返ってくる。
xx:xx形式にフォーマットを整えたいなどあれば、ググってみて。
チャンネル数
$file = 'private/hogehoge.wav'; //ファイルパス
$media = FFMpeg::open($file);
$mediaStreams = $media->getStreams()[0];
return >$mediaStreams->get('channels')
ステレオなら2が返る
モノラルなら1(試してないけど)
ビットレート
$file = 'private/hogehoge.wav'; //ファイルパス
$media = FFMpeg::open($file);
$mediaStreams = $media->getStreams()[0];
return $mediaStreams->get('bit_rate')/$mediaStreams->get('sample_rate')/$mediaStreams->get('channels'),
結果:16
get('bit_rate')
だけだと、一般的な「〇bit」という情報が取得できない。
get('bit_rate')÷サンプリングレート÷チャンネル数
で求めることができる。