ffmpegをビルドしなおしてみましょう2021
新春特別企画。
CompilationGuide/Ubuntu – FFmpegを元ネタにffmpegをビルドするテスト、のおかわり。
AV1エンコーダが入ったり、上記ドキュメントも若干とはいえ半年前と変わっているので…
あとラジコがflash廃止したりいろいろ。
- さいしょに
- 元ネタの文書、CompilationGuide
- 必要なパッケージの導入・ディレクトリの作成
- 必要なコンポーネントのビルドと導入
- 再ビルド
- 【オマケ】youtube-dl
- 【オマケ】rec_radiko.sh
- 【オマケ】rec_radiko_ts.sh
- 【オマケ】らじるらじる
- 【オマケ】radish
さいしょに
結論(ここを適切にコピペすれば以下は読まなくてよい)
YouTubeとラジコをダウンロードしたい人のためのffmpegビルド方法。
エラーが出ないように適当に切り貼ってください。
その他、目次【オマケ】は上記に対応するツール等の紹介・導入・設定・用法です。御笑覧。
sudo apt-get update -qq && sudo apt-get -y install \ autoconf automake build-essential cmake git-core libass-dev \ libfreetype6-dev libtool pkg-config texinfo wget zlib1g-dev
sudo apt -y install nasm libx264-dev libnuma-dev libx265-dev libvpx-dev libfdk-aac-dev libmp3lame-dev libopus-dev libaom-dev \ libssl-dev libogg-dev libvorbis-dev libtheora-dev
mkdir -p ~/ffmpeg_sources ~/bin
cd ~/ffmpeg_sources && \ git -C SVT-AV1 pull 2> /dev/null || git clone https://github.com/AOMediaCodec/SVT-AV1.git && \ mkdir -p SVT-AV1/build && \ cd SVT-AV1/build && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEC=OFF -DBUILD_SHARED_LIBS=OFF .. && \ PATH="$HOME/bin:$PATH" make -j4 && \ make install && \ cd
cd ~/ffmpeg_sources/ && \ wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --disable-ffplay \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --extra-libs="-lpthread -lm" \ --bindir="$HOME/bin" \ --enable-gpl \ --enable-libaom \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libsvtav1 \ --enable-libvorbis \ --enable-libvpx \ --enable-libtheora \ --enable-libx264 \ --enable-libx265 \ --enable-openssl \ --enable-nonfree && \ PATH="$HOME/bin:$PATH" make -j4 && \ make install && \ hash -r
趣旨
ffmpegのドキュメントを…毎回英語を読むのは億劫なのでメモしてみる。
公式wikiのCompilationGuide/Ubuntu – FFmpegとGeneral Documentation、及びconfigureのソース以外読む努力をする積りはない。
apt使ったインストールで済ませられるところは極力済ませる。←自分の中ではこれが一番大事
元ネタの文書、CompilationGuide
CompilationGuide/Ubuntu – FFmpegは、「コンパイルしたくない人とかできない人向けにstaticビルドがUbuntuにはあるんだけどさあ、非フリーのエンコーダーってそこには入れられねえじゃん?ビルドエラー潰す楽しみも味わえねえし。*1」から始まる有名なビルド手順である。
その他「Ubuntuのaptで入るやつとか、極力邪魔したくねえんだよなあ」的な公式FAQ回答のスタンスを把握しながら、自分のスタンス(↑)を固めて折り合いを付ける。
つまり「いったん自分のホームディレクトリにインストールして、必要なら/usr/local/binにcpすれば?」という公式FAQ回答のとおりで進める。
必要なパッケージの導入・ディレクトリの作成
ffplayを削る
「サーバーユーザーでffplayが要らない人はさあ、」で始まるNoteを採用し、x11grabの依存関係のパッケージを導入しない。
具体的には後述のffmpegのconfigureで「--disable-ffplay」を指定している。
なお、以下sudoのあとに投入されるコマンドでは、あなたのパスワードを訊かれるので答えていただきたい。
$ sudo apt-get update -qq && sudo apt-get -y install \ autoconf automake build-essential cmake git-core libass-dev \ libfreetype6-dev libtool libvorbis-dev pkg-config texinfo wget zlib1g-dev
削ったffplayを再度オンにするときは以下のとおり。
ffmpegのconfigure時、--disable-ffplayも削るべし。
$ sudo apt -y install libsdl2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev
必要なコンポーネントのビルドと導入
驚いたことにUbuntu20.04を使う分にはコンポーネント関連はほぼ野良ビルド不要…
でも少しでも新しいものを使いたい方は公式wikiを見て0.001でも新しい野良をぶち込むといいと思う。
そういう御仁のため、スクリプトを作ってくれている先人が居るので、紹介する。*2
LinuxでFFmpegをほぼ全自動でビルドする(CentOS、Ubuntu等に対応) | 自分に負けないラボラトリー
nasm、yasm、x264、x265、libvpx、libfdk-aac、libmp3lame、libopus、libaom
本稿時点のaptで導入されるバージョンが要件を満たしているのでaptから導入してよいハズ。
libaomもなんかstableなAPIがないのよね、みたいなコメントがあって、しばし待っとくれ、的なNoteがなされていたけど*3、パッケージがUbuntuにあるので入れたら通った。
たぶん大丈夫なんだろう。
$ sudo apt -y install nasm yasm libx264-dev libnuma-dev libx265-dev libvpx-dev libfdk-aac-dev libmp3lame-dev libopus-dev libaom-dev
theora
Ogg Vorbis作ってるとこの非可逆動画圧縮フォーマットらしい。あと、たぶんlibvorbisかlibopus導入時に入ってると思うけど気持ち悪いのでliboggも明示的に導入しておこう。
$ sudo apt -y install libogg-dev libtheora-dev
openssl
ウチではgnutlsをオンにしてビルドすると「それpkgconfigにないですから」というエラーが出ます。
うーん、何なんでしょうかね?公式どおりにビルドしてるつもりなんですけどねえ…
だもんでこっち。ライセンス?知るかバーカ。
$ sudo apt -y install libssl-dev
libsvtav1
AV1のエンコーダ。ffmpeg上では2021.1.1現在デコーダーの方はサポートされていないのだ、とのこと。
ていうか、libaomもAV1関係なんだけど、こいつはlibaom-av1よりエンコードが速い(てかlibaom-av1はメチャ遅い)とのことです。*4
こいつはUbuntu上にパッケージがないので、ビルドせざるを得ないみたいな感じでないかい?
ビルドの方のmakeに-j4オプションを追加とかすると並列コンパイルうんぬん。
あ、不要ならこの工程とffmpegのconfigureで「--enable-libsvtav1」を削るといいと思います。
cd ~/ffmpeg_sources && \ git -C SVT-AV1 pull 2> /dev/null || git clone https://github.com/AOMediaCodec/SVT-AV1.git && \ mkdir -p SVT-AV1/build && \ cd SVT-AV1/build && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEC=OFF -DBUILD_SHARED_LIBS=OFF .. && \ PATH="$HOME/bin:$PATH" make -j4 && \ make install && \ cd
FFmpeg
ビルドする。
下から3行目に-jオプション追加、「PATH="$HOME/bin:$PATH" make -j4 && \」などとすると4多重で並列でコンパイルが進んで終わるのが早くなる、のは、ご存じのとおりでは、ないでしょうか。
$ cd ~/ffmpeg_sources/ && \ wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --disable-ffplay \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --extra-libs="-lpthread -lm" \ --bindir="$HOME/bin" \ --enable-gpl \ --enable-libaom \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libsvtav1 \ --enable-libvorbis \ --enable-libvpx \ --enable-libtheora \ --enable-libx264 \ --enable-libx265 \ --enable-openssl \ --enable-nonfree && \ PATH="$HOME/bin:$PATH" make -j4 && \ make install && \ hash -r
いったんログアウトさせて、新たに開いたWSLでffmpegを開くと、ffmpegができているのが確認できる。以下のとおり動いているみたい。
$ ffmpeg ffmpeg version N-100510-g4a160cb Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04) configuration: --prefix=/home/tangerine/ffmpeg_build --pkg-config-flags=--static --disable-ffplay --extra-cflags=-I/home/tangerine/ffmpeg_build/include --extra-ldflags=-L/home/tangerine/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/tangerine/bin --enable-gpl --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libsvtav1 --enable-libvorbis --enable-libvpx --enable-libtheora --enable-libx264 --enable-libx265 --enable-openssl --enable-nonfree libavutil 56. 62.100 / 56. 62.100 libavcodec 58.115.102 / 58.115.102 libavformat 58. 65.100 / 58. 65.100 libavdevice 58. 11.103 / 58. 11.103 libavfilter 7. 94.100 / 7. 94.100 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55. 8.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or, even better, run 'man ffmpeg'
ちなみにパスが通っていないため、man ffmpegをこの時点でするとドキュメントは出ずエラーになる。
ドキュメントをmanで出す設定等も公式wikiにあるが、~/ffmpeg_build/share/doc/ffmpegディレクトリをテキトーにWindowsから開きやすい所にコピってブラウザで開いた方が楽なんでないか。
再ビルド
アップデートほかffmpegを再ビルドしたい時は、前にビルドしたやつが残っているとうまくない場合があるのか、中間生成物等を削除する。
$ rm -rf ~/ffmpeg_build ~/bin/{ffmpeg,ffprobe,ffplay,x264,x265}
更にffmpegほか、各ディレクトリをmake cleanした後にmakeを始めんといかんのでは、ないだろうか…
$ cd ~/ffmpeg_sources/ffmpeg
$ make clean
(このほかにビルドしたコンポーネントがあれば各々のディレクトリでmake cleanを実行する。)
【オマケ】youtube-dl
本体スクリプトの導入
しれーっとpython3周りの設定を導入している。Ubuntu20.04てpython2に関しては消極的だったと思うのと、ytdl自体はpython3でも動くので。
でもなんか最近コイツでも落とせないの多くない?
$ sudo apt -y install python-is-python3 $ sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl $ sudo chmod a+rx /usr/local/bin/youtube-dl
オマケスクリプトと実行結果。
コケるときはコケるんであんまり信用しないこと。
$ cat mux.sh #!/bin/bash youtubename=`youtube-dl --get-filename $1` echo $youtubename videoname=`echo "$youtubename" | sed -e 's/webm\$/mp4/g'` #videoname=`basename "$youtubename" .e`.mp4 echo $videoname audioname=`echo $videoname | sed -e 's/mp4\$/m4a/g'` #audioname=`basename "$youtubename" .e`.m4a echo $audioname muxname=`echo $videoname | sed -e 's/mp4\$/mux.mp4/g'` #muxname=`basename "$youtubename" .e`.mux.mp4 echo $muxname youtube-dl -F $1 echo -n "-f option [137,140]: " read optcodec if [ "$optcodec" = "" ]; then optcodec="137,140" fi youtube-dl -f $optcodec $1 ffmpeg -i "$videoname" -i "$audioname" -c:v copy -c:a copy "$muxname" && \ rm "$videoname" && rm "$audioname"
$ sudo chmod +x mux.sh
$ ./mux.sh https://www.youtube.com/watch?v=_ZRp7KYXM1A #StayHome #GWも家で一緒に-_ZRp7KYXM1A.mp4 #StayHome #GWも家で一緒に-_ZRp7KYXM1A.mp4 #StayHome #GWも家で一緒に-_ZRp7KYXM1A.m4a #StayHome #GWも家で一緒に-_ZRp7KYXM1A.mux.mp4 [youtube] _ZRp7KYXM1A: Downloading webpage [info] Available formats for _ZRp7KYXM1A: format code extension resolution note 249 webm audio only tiny 55k , opus @ 50k (48000Hz), 358.71KiB 250 webm audio only tiny 72k , opus @ 70k (48000Hz), 471.76KiB 140 m4a audio only tiny 130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 950.87KiB 251 webm audio only tiny 137k , opus @160k (48000Hz), 939.03KiB 278 webm 256x144 144p 97k , webm container, vp9, 30fps, video only, 611.20KiB 160 mp4 256x144 144p 111k , avc1.4d400c, 30fps, video only, 482.46KiB 133 mp4 426x240 240p 191k , avc1.4d4015, 30fps, video only, 796.20KiB 242 webm 426x240 240p 221k , vp9, 30fps, video only, 1.03MiB 134 mp4 640x360 360p 343k , avc1.4d401e, 30fps, video only, 1.39MiB 243 webm 640x360 360p 406k , vp9, 30fps, video only, 1.78MiB 135 mp4 854x480 480p 571k , avc1.4d401f, 30fps, video only, 2.04MiB 244 webm 854x480 480p 677k , vp9, 30fps, video only, 2.66MiB 136 mp4 1280x720 720p 818k , avc1.4d401f, 30fps, video only, 3.19MiB 247 webm 1280x720 720p 1289k , vp9, 30fps, video only, 4.43MiB 248 webm 1920x1080 1080p 2483k , vp9, 30fps, video only, 11.15MiB 137 mp4 1920x1080 1080p 2670k , avc1.640028, 30fps, video only, 10.69MiB 18 mp4 640x360 360p 457k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 3.28MiB 22 mp4 1280x720 720p 575k , avc1.64001F, mp4a.40.2@192k (44100Hz) (best) -f option [137,140]: [youtube] _ZRp7KYXM1A: Downloading webpage [info] _ZRp7KYXM1A: downloading video in 2 formats [download] Destination: #StayHome #GWも家で一緒に-_ZRp7KYXM1A.mp4 [download] 100% of 10.69MiB in 00:01 [download] Destination: #StayHome #GWも家で一緒に-_ZRp7KYXM1A.m4a [download] 100% of 950.87KiB in 00:00 [ffmpeg] Correcting container in "#StayHome #GWも家で一緒に-_ZRp7KYXM1A.m4a" ffmpeg version N-97687-gd0705ec Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/home/tangerine/ffmpeg_build --pkg-config-flags=--static --disable-ffplay --extra-cflags=-I/home/tangerine/ffmpeg_build/include --extra-ldflags=-L/home/tangerine/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/tangerine/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-openssl libavutil 56. 43.100 / 56. 43.100 libavcodec 58. 83.100 / 58. 83.100 libavformat 58. 43.100 / 58. 43.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 80.100 / 7. 80.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '#StayHome #GWも家で一緒に-_ZRp7KYXM1A.mp4': Metadata: major_brand : dash minor_version : 0 compatible_brands: iso6avc1mp41 creation_time : 2020-05-02T11:24:31.000000Z Duration: 00:01:00.06, start: 0.000000, bitrate: 1492 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 106 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: creation_time : 2020-05-02T11:24:31.000000Z handler_name : ISO Media file produced by Google Inc. Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '#StayHome #GWも家で一緒に-_ZRp7KYXM1A.m4a': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf58.43.100 Duration: 00:01:00.12, start: 0.000000, bitrate: 129 kb/s Stream #1:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default) Metadata: handler_name : ISO Media file produced by Google Inc. Output #0, mp4, to '#StayHome #GWも家で一緒に-_ZRp7KYXM1A.mux.mp4': Metadata: major_brand : dash minor_version : 0 compatible_brands: iso6avc1mp41 encoder : Lavf58.43.100 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 106 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default) Metadata: creation_time : 2020-05-02T11:24:31.000000Z handler_name : ISO Media file produced by Google Inc. Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default) Metadata: handler_name : ISO Media file produced by Google Inc. Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #1:0 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 1800 fps=0.0 q=-1.0 Lsize= 11923kB time=00:01:00.09 bitrate=1625.4kbits/s speed=2.09e+03x video:10921kB audio:939kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.525545%
何回試してもダウンロードできなくなる日が来たとき(原理上よく起こる)
次の二つを対応
- スクリプト本体の更新(「導入」をもっかいやる。)
- キャッシュ削除(以下のコマンド投入。)
$ youtube-dl --rm-cache-dir
【オマケ】rec_radiko.sh
簡易Radiko録音スクリプト · GitHub
こないだ*5FLASH廃止後のradikoに対応されました。バイバイswftools。
radikoでNHKが録音できるようになったため、radiru録音スクリプトはもう不要かも…
アレ?radikoプレミアムへの対応が無くなってる…そこは、後述するradishで対応可能かな。
xmllintの導入
$ sudo apt -y install libxml2-utils
rec_radiko.sh
$ cd ~ $ git clone https://gist.github.com/3956266.git $ cp ~/3956266/rec_radiko.sh ~ $ chmod +x ~/rec_radiko.sh
実行例
perlのエラー警告が煩いですな。
$ ./rec_radiko.sh INT 1 perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "ja_JP.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "ja_JP.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "ja_JP.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "ja_JP.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
【オマケ】rec_radiko_ts.sh
GitHub - uru2/rec_radiko_ts: Radiko timefree program recorder
タイムフリーというか、終わった番組を引っ張ってくるのはこっち。
実行例(3行目)の-uで指定するURLはradiko.jp公式のタイムフリーで聴きたい番組を選んで、アドレスバーからコピペすればよい。
ちなみに、タイムフリーで聞けない番組は、たぶん原理的に録音できない(サーバにないんだもん)。
$ wget https://raw.githubusercontent.com/uru2/rec_radiko_ts/master/rec_radiko_ts.sh $ chmod +x rec_radiko_ts.sh $ rec_radiko_ts.sh -u 'http://radiko.jp/#!/ts/INT/20200510200000'
【オマケ】らじるらじる
らじるらじる m3u8 を ffmpeg で録音する(8放送局)2017/9 以降対応 · GitHub
以下のコマンドのffmpegの-iオプションのURLは、M3U8というもので各(地方の)ラジオ局を表す。test.m4aが出力ファイル名なので併せて適宜変更されたい。
$ ffmpeg -i https://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-01.m3u8 -t 15 -c copy test.m4a ffmpeg version git-2020-04-05-bef3c14 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.3.0 (GCC) configuration: --prefix=/usr/local/ffmpeg_build --extra-cflags=-I/usr/local/ffmpeg_build/include --extra-ldflags=-L/usr/local/ffmpeg_build/lib --extra-libs='-lm -lpthread' --bindir=/usr/local/ffmpeg_build/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfreetype --enable-openssl --enable-pic --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libtheora --enable-libvpx --enable-libass libavutil 56. 42.102 / 56. 42.102 libavcodec 58. 77.101 / 58. 77.101 libavformat 58. 42.100 / 58. 42.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 77.101 / 7. 77.101 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 [hls @ 0x324f140] Skip ('#EXT-X-VERSION:2') [hls @ 0x324f140] Opening 'https://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-20200320T020228-01-215/1190.ts' for reading [hls @ 0x324f140] Opening 'https://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-20200320T020228-01-215/1191.ts' for reading Input #0, hls, from 'https://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-01.m3u8': Duration: N/A, start: 24975.284811, bitrate: N/A Program 0 Metadata: variant_bitrate : 0 Stream #0:0: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp Metadata: variant_bitrate : 0 Output #0, ipod, to 'test.m4a': Metadata: encoder : Lavf58.42.100 Stream #0:0: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp Metadata: variant_bitrate : 0 Stream mapping: Stream #0:0 -> #0:0 (copy) Press [q] to stop, [?] for help [https @ 0x327bec0] Opening 'https://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-20200320T020228-01-215/1192.ts' for reading size= 87kB time=00:00:14.97 bitrate= 47.6kbits/s speed= 802x video:0kB audio:88kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
【オマケ】radish
GitHub - uru2/radish: Live streaming radio recoder
rec_radiko_ts.shの作者が作ったradiko録音スクリプト。イマドキはこっちらしい。
radiko以外にもいろいろ対応してるっぽいけど、よくわかんないや。
$ sudo apt install jq $ cd ~ $ git clone https://github.com/uru2/radish.git $ cp ~/radish/radi.sh ~ $ chmod +x ~/radi.sh
実行例
非常に便利だ。
$ ./radi.sh -t radiko -s ALPHA-STATION -d 1 -i RADIKO_PREMIUM_MAIL_ADDRESS -p RADIKO_PREMIUM_PASSWORD
*1:微妙にずれるかもだが、この辺のスタンスや、事情については、界隈を追っかけていた人(ほんとうはそういう変人呼ばわりしてはいけない位のエラいもんの様である。)の記事が端正な日本語で読めるので、紹介する。本の虫: ffmpegとlibavの背景事情。お家騒動、覚えてる人にとっては、嫌な事件だったね…
*2:もちろんこの投稿の元ネタもここだ。盛大にパクっているつもりなのに、志が全然違うんで全然違う結果になっているのはご愛敬。
*3:これぜんぜん音沙汰がないようにも見える。