WSL(Bash on Ubuntu 20.04 on Windows)向けにffmpegをビルドしてみる話
CompilationGuide/Ubuntu – FFmpegを元ネタにWSL1のUbuntu用にビルドするテスト。
20.04出たばかりのWSL2出る直前でタイミングとかすごい悪い気がするが、気にしない。
…WSL2でも動いたな、これ。当たり前か。
あとffmpegの脆弱性ガー、みたいな記事を2020.5.25にニュースサイトで見たので注意。
- さいしょに
- 元ネタの文書、CompilationGuide
- 必要なパッケージの導入・ディレクトリの作成
- 必要なコンポーネントのビルドと導入
- 再ビルド
- 【オマケ】youtube-dl
- 【オマケ】rec_radiko.sh
- 【オマケ】rec_radiko_ts.sh
- 【オマケ】らじるらじる
さいしょに
結論(ここを適切にコピペすれば以下は読まなくてよい)
YouTubeとラジコをダウンロードしたい人のためのffmpegビルド方法。
エラーが出ないように適当に切り貼ってください。
その他、目次【オマケ】は上記に対応するツール等の紹介・導入・設定・用法です。御笑覧。
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
sudo apt -y install nasm yasm libx264-dev libnuma-dev libx265-dev libvpx-dev libfdk-aac-dev libmp3lame-dev libopus-dev libaom-dev \ libssl-dev libogg-dev libtheora-dev libopencore-amrnb-dev libopencore-amrwb-dev libgme-dev libmodplug-dev
mkdir -p ~/ffmpeg_sources ~/bin
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-libgme \ --enable-libmodplug \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libtheora \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ --enable-openssl \ --enable-version3 &&\ PATH="$HOME/bin:$PATH" make -j4 && \ make install && \ hash -r
趣旨
ステイホームで暇なのでffmpegのドキュメントを読んだ結果をアウトプットした備忘。
公式wikiのCompilationGuide/Ubuntu – FFmpegとGeneral Documentation、及びconfigureのソース以外読む努力をする積りはない。
早い話が他人に見せないで自分だけキモチヨクなればいい、あれだ。*1
apt使ったインストールで済ませられるところは極力済ませる。
問題の切り分け?にもなりそうじゃん。
オマケで自分の興味のあるところはffmpeg関係なく足していきたい。その際は明記する。
元ネタの文書、CompilationGuide
CompilationGuide/Ubuntu – FFmpegは、「コンパイルしたくない人とかできない人向けにstaticビルドがUbuntuにはあるんだけどさあ、非フリーのエンコーダーってそこには入れられねえじゃん?ビルドエラー潰す楽しみも味わえねえし。*3」から始まる有名なビルド手順である。
その他「Ubuntuのaptで入るやつとか、極力邪魔したくねえんだよなあ」的な公式FAQ回答のスタンスを把握しながら、自分のスタンス(↑)を固めて折り合いを付ける。
つまり「いったん自分のホームディレクトリにインストールして、必要なら/usr/local/binにcpすれば?」という公式FAQ回答のとおりで進める。
閑話:今後の変更点の見直し
2020.5.10時点で「Last modified 12 months ago」だった。枯れた文書なんで、鬼フォローしなくてよさそうな。
HTML文書右上の方に「History」があるので、変更点はそこで辿れる。大きく変わったところはここで確認するといいんではないだろうか。
2020.5.15更新 書いた2日後にmodifiedされている。主な変更点は「yasmじゅうぶん枯れちゃったからaptでよくね?」というのと「gnutls対応にすんべ」という方針への変更に合わせた文書の平仄合わせ。 やっぱ週イチ位チェックすんべえか。 でもなんかlibgnutls28-dev入れて--enable-opensslを--enable-gnutlsに替えたら「ERROR: gnutls not found using pkg-config」エラーが出る気がするんだけどコレ…
必要なパッケージの導入・ディレクトリの作成
ffplayを削る
「サーバーユーザーでffplayが要らない人はさあ、」で始まるNoteを採用し、x11grabの依存関係のパッケージを導入しない*4。
具体的には後述の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
次のエラーが出て再生できなかったよorz
なんかめんどくさそう…
error: XDG_RUNTIME_DIR not set in the environment. Could not initialize SDL - No available video device (Did you set the DISPLAY variable?)
必要なコンポーネントのビルドと導入
驚いたことにUbuntu20.04を使う分にはコンポーネント関連はほぼ野良ビルド不要…
でも少しでも新しいものを使いたい方は公式wikiを見て0.001でも新しい野良をぶち込むといいと思う。
そういう御仁のため、スクリプトを作ってくれている先人が居るので、紹介する。*5
LinuxでFFmpegをほぼ全自動でビルドする(CentOS、Ubuntu等に対応) | 自分に負けないラボラトリー
nasm、yasm、x264、x265、libvpx、libfdk-aac、libmp3lame、libopus、libaom
本稿時点のaptで導入されるバージョンが要件を満たしているのでaptから導入してよいハズ。
libaomもなんかstableなAPIがないのよね、みたいなコメントがあって、しばし待っとくれ、的なNoteがなされていたけど*6、パッケージが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
amr
Wikipedia情報によれば、FOMAの着うたフォーマットとして、マイナーながらもメジャーらしい。
しかもこいつはLGPL3を要求するようなので、対応してやるならconfigureに--enable-version3も足してやらんといかんみたい。
$ sudo apt -y install libopencore-amrnb-dev libopencore-amrwb-dev
gmeとmodplug
ピコピコ系2種。nsfとかが開けるGME(game music emu)とs3mやitも開ける(たぶん)なmodplug。
ライセンスについてはgmeはLGPLでmodplugはわからん。
ライセンスのオプションは上記amrの段で全通しになっているので、ビルド自体はたぶん通るんでないか。
…しかしffplayが欲しくなってくるなコレ。コマンドラインからmod聴けたらステキやん。
$ sudo apt -y install libgme-dev libmodplug-dev
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-libgme \ --enable-libmodplug \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libtheora \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ --enable-openssl \ --enable-version3 &&\ PATH="$HOME/bin:$PATH" make -j4 && \ make install && \ hash -r
いったんログアウトさせて、新たに開いたWSLでffmpegを開くと、ffmpegができているのが確認できる。以下のとおり動いているみたい。
$ ffmpeg 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-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libgme --enable-libmodplug --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libtheora --enable-libx264 --enable-libx265 --enable-nonfree --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-openssl --enable-version3 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 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
rtmpdump、xmllintの導入
$ sudo apt -y install rtmpdump libxml2-utils
swfextractの野良ビルド
いつの間にか*7Ubuntuのレポジトリーからswftoolsが消えていたため、こいつはビルドしてやらないといけない。
SWFTOOLS
zlib1g-devが必須だったような気がするが、上の方で明示的に導入しているので、順番に試してる人は引っ掛かることはないと思う。
なお、従前に導入したライブラリの関係で全部乗せに近いconfigureをかけている場合、ビルドの途中でxpdf云々でエラーが出る場合がある。
しかしこれは既知のMakefileのエラーなので、怯まずもう一回makeコマンドを投入すると最後まで通る。
数年前にissuesで議論されてるが、ここ数年、誰かがMakefileを治した形跡はない。
Compiling fails · Issue #12 · matthiaskramm/swftools · GitHub
$ git clone git://github.com/matthiaskramm/swftools $ ./configure $ make $ sudo make install
rec_radiko.sh
$ wget https://gist.githubusercontent.com/matchy2/3956266/raw/371be42108ea0c4a96c488f36a44b98deb17008f/rec_radiko.sh $ chmod +x rec_radiko.sh
$ ./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"). 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"). RTMPDump v2.4 (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL WARNING: No application or playpath in URL! Connecting ... WARNING: Trying different position for server digest! INFO: Connected... Starting Live Stream For duration: 60.000 sec INFO: Metadata: 365.704 kB / 60.03 sec Download complete
【オマケ】rec_radiko_ts.sh
GitHub - uru2/rec_radiko_ts: Radiko timefree program recorder
タイムフリーが使いやすいのはこっち。
以下の-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
*1:ほかのpostもそうなんですが。
*2:mk.confに一行足して、多めに待つだけで超イージー。うまくいけば、だけど…
*3:微妙にずれるかもだが、この辺のスタンスや、事情については、界隈を追っかけていた人(ほんとうはそういう変人呼ばわりしてはいけない位のエラいもんの様である。)の記事が端正な日本語で読めるので、紹介する。本の虫: ffmpegとlibavの背景事情。お家騒動、覚えてる人にとっては、嫌な事件だったね…
*4:前提がWindowsなんだし、そもそもWSL上で音鳴るのか?
*5:もちろんこの投稿の元ネタもここだ。盛大にパクっているつもりなのに、志が全然違うんで全然違う結果になっているのはご愛敬。
*6:上述のとおり12か月音沙汰がないようにも見える。
*7:19.10からのようです。swftools : Eoan (19.10) : Ubuntu