- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-08-27T02:33:18+00:00","","")
#author("2022-08-27T02:41:36+00:00","","")
[[diary/Kojima]]
・NHKの聴き逃しサービス
最近のNHKラジオは「らじる★らじる」経由で録音できると共に、全てではないものの「聴き逃し」サービスとして、
過去の番組も一週間ほどは聞けるようになっている。
「らじる★らじる」のタイマー録音用スクリプトと共に、この「聴き逃し」サービスの録音用スクリプトもffmpegを使うように書いたものの、
最近、FMで配信された番組の聴き逃しサービスがうまく録音できなくなっている。
具体的には、FMの番組を聴き逃しサービスのURLからダウンロードしようとすると、
Error applying bitstream filters to an output packet for stream #0:0.
Last message repeated 2 times
[aac_adtstoasc @ 0x23b07c0] Error parsing ADTS frame header!
Error applying bitstream filters to an output packet for stream #0:0.
[aac_adtstoasc @ 0x23b07c0] Input packet too small
Error applying bitstream filters to an output packet for stream #0:0.
Last message repeated 1 times
....
のようなエラーが多発して、5分ほど録音したところで終了してしまう。
R1やR2の番組だと問題ないようなので、FMの番組をエンコードするする際の仕様が、ffmpeg が想定しているものと違っている気配。
ところがffplay を使ってリアルタイムで再生すると、上記のようなエラーは垂れ流しつつも最後まで再生できるのが謎。
一方、VLCの「メディア」=>「変換/保存」の機能を使うと、gnutlsのハンドシェイクエラーが頻発するものの、
特に問題なくFMの番組も録音できる。しかしながら、VLCの場合、従来使っていたスクリプトみたいに保存先のファイル名とかを
設定できないのでちょっと不便。
ソースコードは見てないけど、聴き逃しサービスは「らじる★らじる」のリアルタイム配信同様、
HLS(HTTP Live Streaming)を使っているので、ffmpeg と VLC で実装に違いがあるのだろうか?
とりあえず興味ある人向けに、手元でイジっている「聴き逃し」サービス録音用スクリプト(get_ondemand3.py)を添付しておく。
このページの一番下に「添付ファイル」があるので、そこからダウンロード可能。
使い方は、聴きたい番組のページを開いて、再生ボタンのURLへのリンクを右ボタンクリックでコピー、
javascript:openPlayer('p=0328_01_3804167') みたいなURLが得られるので、このうち 'p=0328_01_3804167' の部分を引数にして、
get_ondemand3.py を起動する。
#ref("NHK_01.jpg")
#comment
$ get_ondemand3.py 'p=0328_01_3804167'
program:0328 series:01 number:3804167
series_url:https://www.nhk.or.jp/radioondemand/json/0328/bangumi_0328_01.json
3804167 3804167
{'aa_contents_id': '[radio]vod;浪曲十八番\u3000天光軒満月「乃木将軍\u3000'
'信州墓参」;r3,130;2022082573217;2022-08-25T11:20:00+09:00_2022-08-25T11:50:00+09:00',
'aa_measurement_id': 'vod',
'aa_vinfo1': '浪曲十八番\u3000天光軒満月「乃木将軍\u3000信州墓参」',
'aa_vinfo2': 'r3,130',
'aa_vinfo3': '2022082573217',
'aa_vinfo4': '2022-08-25T11:20:00+09:00_2022-08-25T11:50:00+09:00',
'close_time': '2022-09-01T11:50:00+09:00',
'file_id': '3804167',
....
ちなみに、これはFMの番組になっているので、5分程度で切れちゃうはず。
#comment
とりあえず興味のある人向けに、