解決したいこと
mp4ファイル(h264 / aaclc)を読み込んで
以下のようなjsonを返したい。
json
1[ 2 { 3 timestamp: "" 4 db: "" 5 }, 6 { 7 timestamp: "" 8 db: "" 9 }, 10 . 11 . 12 . 13 . 14]
dbはデシベルで、要は一定間隔の音量データを返したいです。
timestampは取れたらいいなくらいで、なくてもいいです。
golangでやろうとしています。
わかっていること
golangの下記ライブラリでファイルを読み込み、AudioFlameを取得するところまではできています
https://github.com/nareix/joy4
https://github.com/nareix/joy4/blob/master/examples/audio_decode/main.go
わからないこと
上記のフレームに含まれる1024個のPCMサンプルデータから音量を計算すればいいのかと思っているのですが
そもそもこの方針であっているのか。
あっているのであれば計算方法をご教授いただけると助かります。
見当違いであれば、どうすれば私の実現したいことが叶うかご教授いただけると助かります。
私のやりたいことと近いことをやっているOSSのライブラリ教えてくださるだけでも大きな前進になるので
よろしくお願いします。
また、10msec, 100msec, 1sec ごとのdbを計算していく方法も知りたいと思っています。
補足
サンプルで使っているのはこんなファイルです
$ ffprobe sample_360x240_1mb.mp4 -pretty -hide_banner
Input hoge Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 creation_time : 1970-01-01T00:00:00.000000Z encoder : Lavf53.24.2 Duration: 00:00:13.70, start: 0.000000, bitrate: 615 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 229 kb/s, 15 fps, 15 tbr, 15360 tbn, 30 tbc (default) Metadata: creation_time : 1970-01-01T00:00:00.000000Z handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 382 kb/s (default) Metadata: creation_time : 1970-01-01T00:00:00.000000Z handler_name : SoundHandler
回答1件
あなたの回答
tips
プレビュー