C# ラジコ録音

C#初心者の覚書

らじれこのダウンロードファイルのinfomation

ちゃんとタイトルとかアルバム名がついてる。

 

  Metadata:
     major_brand     : M4A
     minor_version   : 512
     compatible_brands: M4A isomiso2
     title           : ナイツ ザ・ラジオショー(13時台) 202209081300
     artist          : ナイツ、箕輪はるか(ハリセンボン) ゲスト:きしたかの
     album           : ニッポン放送
     encoder         : Lavf59.16.100
  Duration: 01:00:00.00, start: 0.000000, bitrate: 47 kb/s
  Stream #0:0[0x1](und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 46 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

 

 

tsファイルの取得元変更

①TSファイルの取得方法について

→これまでtsファイルの取得はリクエストURLから取得していたけど、この取得元がg間違っていたらしい。

これだと5秒ごとに区切られたaacを5秒かけてダウンロードするだけだった。

変更後も5秒ごとに区切られているが一気にダウンロードできているようで、Speedが34xくらいになった。

コマンド指定はこんな感じにしている。

-profile:a aac_he

-ab 48kbps

-ar 44100

-vn

.m4aファイルで、size 21850, bitrate 49.7, speed 34.5kだった。

 

らじれこはSpeed55x~64x、bitrate 45~46くらいなので、このスピードには近づきたいので引き続きテストしてみる。

 

とりあえずSpeed30xくらいになってよかった。

下記を調査

①CPU使用率調べる

②ログの以下の意味を調べる

muxing overhad

Qavg

③らじれこのファイルのプロファイル

 

VS CODE でffmpeg

RadikoPodというEXEはffmpegがhiddenになってないので、ログがみえる。

Stream Audio:aac(HE-AAC), 48000Hz, stereo, fltp, 45 kb/s

Output Audio:aac(HE-AAC)(mp4a / 0x6134706D), 48000Hz, stereo, 45 kb/s

 

自分のはOutputがAudio:aac(LC)になっている所がまず違うのでそれを合わせてみる

 

→ やってみたけど、スピードは1倍のまま

 

コマンドの意味が分かってきたので試している。

どれを試したか記録した方がいい。

 

-Thread 使用するスレッドの数を指定

-c copy または -c:a copy オーディオをエンコードしない

-cオプションはコーデックを指定するオプションです。音声なら:a、映像なら:vの後にコーデックを指定します。これにcopyを指定するととすると入力がデコードエンコードを経由せずに出力されます。

-codec:a  または -acodec

音声コーデックを指定します。指定しない場合は入力ファイルと同じコーデックになります

 -acodec libmp3lame  MP3でエンコード

 -acodec libfdk_aac AACエンコード

 -acodec codec オーディオのコーデックを codec に強制します。未加工のコーデックデータ をありのままコピーするには copy という特別な値を使ってください。 

 

-vn 映像の録画を無効にします

-ac 2 音声のチャンネル数を指定します(ステレオをモノラルにしたい場合は -ac 1 を指定するとモノラルになる)

-ar 44100 サンプリング周波数を指定 (既定値は44100Hz)

-ab 256k オーディオビットレートをbit/sで設定します(既定値は64k)

-f mp3 フォーマットを強制します。

-profile:a aac_he

 

-bsf:a aac-adTStoasc

オプション内にある:aは(Audio)、:vは(Video)に限定して適用させています。bsfではaudioに対しbitstreamフィルタを指定しています。
aac_adtstoascは公式の解説によると「MPEG-2/4 ADTSヘッダ」から「MPEG-4音声設定」を作成し「MPEG-2/4 ADTSヘッダ」を除去するものです。

 

VS CODEffmpegを使えるようにしてみる

AACとは

AAC (Advanced Audio Coding)・・・音声データの圧縮方式(コーデック)の一つ

 

MP3よりデータサイズは大きいが音質は良い

MPEG-2/MPEG-4でも使用それらの形式のビデオファイルにて音声部分を担当している

音質はAAC、MP3どちらもビットレートの最大値は320kbps

 

エンコード→符号化して圧縮

デコード →エンコードした映像音声をcodecプログラムでデコードして再生する

 

音声圧縮形式 拡張子 説明

AAC     

.aac  

AAC形式の音声データをコンテナなどに入れずに裸のままファイルにしたもの

単体で保存する際の標準のファイル拡張子は「.aac」だが、WAVや3GPなどのコンテナ形式に格納される場合もある。

AAC .m4a  MPEG-4を音声用にappleが独自開発 MP4ファイルに映像を入れない状態でファイル化
MP3 .mp3 音声圧縮方式の規格の一つ。MPEG 1 Audio Layer-3(エム・ペッグ・ワン・オーディオ・レイヤー・スリー)の略です。最近はMPEG 1の「1」を表記しないMPEG Audio Layer-3とされています。

 

拡張子はどこのようなコンテナに格納するかによってかわる。

例えば、MPEG4のコンテナフォーマットに格納すれば「.mp4」となり(音声ファイルの場合は「.m4a」となることが多い)、MP3と同様にAACデータをそのままファイル化した場合は、拡張子が「.aac」とる。(MPEG4コンテナには、AAC以外にもMP3などを格納することができます)

 

 

AACプロファイル

  • SSR
    • 低いサンプリングレートと低いビットレートの組み合わせ
    • 適用したAACをHE_AAC(HighEfficiency)、aacPlus5という
    • AACを改良し、少ないデータ量(ビットレート)が選択された際の音質を改善した高圧縮型の符号化方式をHE-AAC(aacPlus/AAC+)

 

Radikoの音質は、HE_AAC v2、48kbps。

 

ファイルサイズの確認

「らじれこ」との比較

ファイルサイズ:1390kb

拡張子:m4a

ビットレート:44k

スピード:72.8x

 

試作品

ファイルサイズ:3698kb

拡張子:aac

ビットレート:117k

スピード:1.07x

 

調べる

  • m4a、aac 拡張子の違い
  • ビットレートとは 
    • 1秒間に必要なデータ量のこと
    • 音声ビットレートは96-128kbps
    • 動画の場合は映像と音声を合算した値
  • サンプリングレートとは
    • 音の波形を1秒間に何回サンプルするか
    • CDの音質は44100Hz
  • スピードを上げるためには