diary/Kojima/2015-09-03
の編集
http://plamo.linet.gr.jp/?diary/Kojima/2015-09-03
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
[[diary/Kojima]] ・「らじる★らじる」をrtmpdumpで 従来、「らじる★らじる」はwmvでも提供されていたけれど、 どうやら8月末でwmv配信は終了してMacromedia Flashオンリーになったらしい。 wmvは近い将来には止まるだろうなぁ、、と思っていたので、 いよいよその時が来たか、という感じ。 一方、セキュリティがらみの問題の多さからFlashは使わないようにしよう、 という動きもあるので、これからどうなるかはよく分からないところ 一応、Linux環境でMacromedia Flashな配信を聞くための、 rtmpdumpというコマンドが開発されていて、 それを用いた「らじる★らじる」用のコードもあちこちで公開されているので、 [[このあたり:https://gist.github.com/riocampos/5656450]]を参考に、 radiru_rec.py なコードをイジってみた。 ざっくりといじった感じ、rtmpdump で落ちてくるMacromedia Flashは、 音声の圧縮にAACを使ってはいるものの、Flashなコンテナ(flv)に入っているので、 そのままではMP4オーディオに対応しているはずのWalkmanでは再生できなかった。 $ file 2015-09-03-17-20_音楽遊覧飛行.flv 2015-09-03-17-20_音楽遊覧飛行.flv: Macromedia Flash Video CODECそのものはAACなんで、ffmpeg で -acodec copy を指定して、 コンテナ形式を変更してやれば再エンコードせずに移せる感じ。 $ ffmpeg -i 2015-09-03-17-20_音楽遊覧飛行.flv -acodec copy 2015-09-03-17-20_音楽遊覧飛行.m4a $ file 2015-09-03-17-20_音楽遊覧飛行.m4a 2015-09-03-17-20_音楽遊覧飛行.m4a: ISO Media, Apple iTunes ALAC/AAC-LC (.M4A) Audio コード全体はもう少し動作の確認をしてから公開するつもりだけど、 radiru_rec.py の中心部分はこんな感じにしている。 if channel == 'r1': rtmp='rtmpe://netradio-r1-flash.nhk.jp' playpath='NetRadio_R1_flash@63346' elif channel == 'r2': rtmp='rtmpe://netradio-r2-flash.nhk.jp' playpath='NetRadio_R2_flash@63342' elif channel == 'fm': rtmp='rtmpe://netradio-fm-flash.nhk.jp' playpath='NetRadio_FM_flash@63343' ... lines = [] lines.append("#!/bin/sh") lines.append("flvfile={0}/{1}.flv".format(musicdir, title)) lines.append("m4afile={0}/{1}.m4a".format(musicdir, title)) lines.append("(rtmpdump --rtmp {0} --playpath {1} --app \"live\" --swfVfy \'http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf\' --quiet --live --stop {2} -o $flvfile ) &".format(rtmp, playpath, sduration)) lines.append("sleep 1m") lines.append("radiru_noa.py {0} $m4afile".format(channel)) lines.append("sleep {0}m".format(duration)) lines.append("ffmpeg -loglevel quiet -i \"$flvfile\" -acodec copy "$m4afile\" ") lines.append("") lines.append("/bin/rm -f \"$flvfile\"") lines.append("radiru_tag.py \"$m4afile\"") lines.append("rm -f {}".format(scriptname)) lines.append("") script = "\n".join(lines) 生成したシェルスクリプトをatの時間指定で実行する、という方針は変わらないけど、 mplayerとlameを使っていたのをrtmpdumpとffmpegに変えた、って感じ。 ざっと見、mp3だと15MBくらいだった15分の語学講座が、AAC形式のm4aだと5.5MBぐらいになるので、技術の進歩はすごいなぁ、、と思うところ。 録音のプロセスはrtmpdump一つだけになったので、mplayerとlameを同時に動かすよりはトラブルが起きにくいかな、と期待している。 - rtmpdump-2.4はPlamo-5.3.1にも入っている(P2)けれど共有ライブラリが librtmp.so.0 で不安定。よく分からないけど途中でつかえたりするみたい。最近のgitにあるlibrtmp.so.1だとそういうトラブルは無いので、rtmpdump-2.4 + librtmp.so.1 が必要条件みたい。一応、P3でパッケージ化もしてはいる。 -- [[kojima]] &new{2015-09-03 (木) 21:34:27}; #comment
タイムスタンプを変更しない
[[diary/Kojima]] ・「らじる★らじる」をrtmpdumpで 従来、「らじる★らじる」はwmvでも提供されていたけれど、 どうやら8月末でwmv配信は終了してMacromedia Flashオンリーになったらしい。 wmvは近い将来には止まるだろうなぁ、、と思っていたので、 いよいよその時が来たか、という感じ。 一方、セキュリティがらみの問題の多さからFlashは使わないようにしよう、 という動きもあるので、これからどうなるかはよく分からないところ 一応、Linux環境でMacromedia Flashな配信を聞くための、 rtmpdumpというコマンドが開発されていて、 それを用いた「らじる★らじる」用のコードもあちこちで公開されているので、 [[このあたり:https://gist.github.com/riocampos/5656450]]を参考に、 radiru_rec.py なコードをイジってみた。 ざっくりといじった感じ、rtmpdump で落ちてくるMacromedia Flashは、 音声の圧縮にAACを使ってはいるものの、Flashなコンテナ(flv)に入っているので、 そのままではMP4オーディオに対応しているはずのWalkmanでは再生できなかった。 $ file 2015-09-03-17-20_音楽遊覧飛行.flv 2015-09-03-17-20_音楽遊覧飛行.flv: Macromedia Flash Video CODECそのものはAACなんで、ffmpeg で -acodec copy を指定して、 コンテナ形式を変更してやれば再エンコードせずに移せる感じ。 $ ffmpeg -i 2015-09-03-17-20_音楽遊覧飛行.flv -acodec copy 2015-09-03-17-20_音楽遊覧飛行.m4a $ file 2015-09-03-17-20_音楽遊覧飛行.m4a 2015-09-03-17-20_音楽遊覧飛行.m4a: ISO Media, Apple iTunes ALAC/AAC-LC (.M4A) Audio コード全体はもう少し動作の確認をしてから公開するつもりだけど、 radiru_rec.py の中心部分はこんな感じにしている。 if channel == 'r1': rtmp='rtmpe://netradio-r1-flash.nhk.jp' playpath='NetRadio_R1_flash@63346' elif channel == 'r2': rtmp='rtmpe://netradio-r2-flash.nhk.jp' playpath='NetRadio_R2_flash@63342' elif channel == 'fm': rtmp='rtmpe://netradio-fm-flash.nhk.jp' playpath='NetRadio_FM_flash@63343' ... lines = [] lines.append("#!/bin/sh") lines.append("flvfile={0}/{1}.flv".format(musicdir, title)) lines.append("m4afile={0}/{1}.m4a".format(musicdir, title)) lines.append("(rtmpdump --rtmp {0} --playpath {1} --app \"live\" --swfVfy \'http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf\' --quiet --live --stop {2} -o $flvfile ) &".format(rtmp, playpath, sduration)) lines.append("sleep 1m") lines.append("radiru_noa.py {0} $m4afile".format(channel)) lines.append("sleep {0}m".format(duration)) lines.append("ffmpeg -loglevel quiet -i \"$flvfile\" -acodec copy "$m4afile\" ") lines.append("") lines.append("/bin/rm -f \"$flvfile\"") lines.append("radiru_tag.py \"$m4afile\"") lines.append("rm -f {}".format(scriptname)) lines.append("") script = "\n".join(lines) 生成したシェルスクリプトをatの時間指定で実行する、という方針は変わらないけど、 mplayerとlameを使っていたのをrtmpdumpとffmpegに変えた、って感じ。 ざっと見、mp3だと15MBくらいだった15分の語学講座が、AAC形式のm4aだと5.5MBぐらいになるので、技術の進歩はすごいなぁ、、と思うところ。 録音のプロセスはrtmpdump一つだけになったので、mplayerとlameを同時に動かすよりはトラブルが起きにくいかな、と期待している。 - rtmpdump-2.4はPlamo-5.3.1にも入っている(P2)けれど共有ライブラリが librtmp.so.0 で不安定。よく分からないけど途中でつかえたりするみたい。最近のgitにあるlibrtmp.so.1だとそういうトラブルは無いので、rtmpdump-2.4 + librtmp.so.1 が必要条件みたい。一応、P3でパッケージ化もしてはいる。 -- [[kojima]] &new{2015-09-03 (木) 21:34:27}; #comment
テキスト整形のルールを表示する