収録
収録用のユーティリティを実装した。
(setq youtube-live-api-key "")
(defun youtube-live-start ()
(interactive)
(async-shell-command
(format
"ffmpeg -f avfoundation -r 30 -s 1920x1080 -i '1:0' -f flv 'rtmps://a.rtmp.youtube.com/live2/%s'"
youtube-live-api-key)))
FFpegだとWindowだけをキャプチャできない。
動画のダウンロードができない
YouTube Liveで配信した動画のダウンロードがいつまでたってもできない。ツールを使ったダウンロードもなぜかできないので、ちょっと困っている。どうせ動画の編集作業をするのだから、普通にローカルファイルに書き込んだ方がいいかもしれない。
Voicevoxを整備する
音声も結局の所、機械読み上げの方が楽ではあるため、Voicevoxを準備する事にした。ファイルが落せなかったから、後で再実行する。
場所の切り替えについて
今日は渋谷に行っていた。頭の切り替えがあまり得意ではないから、よく別の場所に移動して作業する。ただ、最近外にいてもあまり効果を得られないようになってきた。良くも悪くも飽きてきたのだろうか。
外にいても、いつも行く所なんて本当に限られている。初めていく所あまりないけれど、少しずつ行ける場所も増やしていきたい。ただ作業環境が良いのは、だいたいカフェチェーン店だ。結局の所、そういうお店が居心地が良く作業しやすい。
文書の整理と保存場所
文書の整理をした。統合された文書管理システムがあった方が良いかもしれない。税理士さんから送られてくる書類の保存場所をSlackではなくGoogle Driveに配置してもらうようにすると、書類の移動をする手間が減るかもしれない。
Versoをビルドしてみる
Servo搭載のWebブラウザとして、Versoというブラウザが開発されているみたいだ。使ってみたい。Tauriに組み込むためらしいけれど、同じような感じでEmacsに組み込めるといいなという妄想をした。
https://github.com/versotile-org/verso
まずはビルドしてみる。ビルド方法はREADMEに掲載されているので、そのまま試す。
RustやCargoは既にある。
rustc --version
rustc 1.78.0 (9b00956e5 2024-04-29)
cargo --version
cargo 1.78.0 (54d8815d0 2024-03-26)
関連するパッケージをインストールする。
brew install cmake pkg-config harfbuzz
Python製テンプレートエンジンmakoも使っているようなのでそれもインストールする。
pip install mako
ソースコードを取得する。
git clone --depth=1 [email protected]:versotile-org/verso.git
作業ディレクトリをリポジトリから取得したソースコードのディレクトリに移動し、 cargo
コマンドで必要なクレートを取得する。
cargo run
ビルドの続きを行い、暫く待つとブラウザのウィンドが表示された。
リラコン
リラコンが販売開始されたため、Bluetoothタイプのリラコンを1つ購入した。これはトラックボールマウスで、寝ながら操作できるというのがコンセプトだ。通常のマウスは机に置いて使う事を想定しているのに対し、リラコンは握って使う事を想定している。
僕が考えている用途は、電車の車内で使う事だ。サングラス型HMDがあるため、電車の車内でも大きな画面を見る事ができるようになった。しかしスマホは、操作がタッチパネルである事を前提としているため、マウスカーソルを移動させるという事が難しい。画面の触れた位置、そこがマウスカーソルの位置となるからだ。Bluetoothのマウスを接続できれば問題ない。例えばHHKB Studioにはトラックポインタがあるため、マウス操作もできる。しかし、電車の車内でHHKBを使うのかと言われると結構微妙だ。座っていて両サイドの席が空いていればできるけれど、常にそういう状況というわけではない。
手に持つタイプのポインタデバイスがあれば、HMDに接続したスマホを立ったままでも操作できる。そういう用途ではリラコンがうってつけだと考え1た。
電車の中では、それほど大々的な作業はできない。ただレビューであったり、ドキュメントや資料を読んだりする事はできる。移動時間やスキマ時間、ちょっとした次元の狭間のような場所で時間を過ごす時に、その時間を有効活用できるようになる。
来週の火曜日に届く。とても楽しみだ。
ffmpegでYouTube Liveを配信する
YouTube Liveは動画共有サイトYouTubeが提供しているライブ配信プラットフォームだ。YouTube Liveの機能で配信を行う他、OBSといった配信でよく使われるツールからも配信する事ができる1。OBSではYouTube Liveへの連携機能があるけれど、配信用のURLを直接指定する事もできる。この直接指定では、RTMPというプロトコルが使われる。RTMPとは、リアルタイムでのストリーミング配信などに使われる通信プロトコルだ。このRTMP、実はffmpegで指定する事ができる。そこで今回はffmpegでYouTube Liveの配信を行う。
環境はmacOSを使う。これは手元の環境がmacOSだからという理由だけであって、ffmpegを使える環境であれば指定するオプションを変更する事で他の環境でも配信はできる2。
ffmpeg -f avfoundation -r 30 -s 1920x1080 -i '1:0' -f flv 'rtmps://a.rtmp.youtube.com/live2/:API_KEY'
:API_KEY
にはYouTube Liveで発行されたAPIキーを指定する。YouTube Liveでは、このURL全体をコピーできるようにしてくれているので、それをコピーしてURLをそのまま置き換えてあげればよい。
-f
は入力フォーマットを指定する。映像キャプチャデバイスやオーディオデバイスを扱う。ここでは avfoundation
を指定している。 avfoundation
はmacOSのフレームワークであるため、他の環境では使えない3。他の環境では、その環境で使用可能な画面キャプチャや音声キャプチャのインターフェースがあると思うので、それを調べて指定する必要がある。
-r
はフレームレートを指定する。ここでは 30
を指定している。つまり1秒間に30フレームを映像をキャプチャする。数字が大きい程、映像が滑らかになるがマシンの負荷も高くなる。逆に数字が小さいと、映像がカクカクになる。
-s
は解像度を指定する。ここでは 1920x1080
を指定しており、これはフルHDの解像度だ。
2つ目の -f
には出力フォーマットを指定する。ここでは flv
を指定している。
最後にコマンド引数として、出力先を指定する。ここでは rtmps://
から始まるYouTube Liveの配信URLを指定している。
雑多に考えた事
荷物の持ち運び方法を改善したい。流石に日常的に持ち歩くには重すぎる。ただほぼ全てのものに対して信用できなくなったため、そうならざるをえない。レールから外れた生き方は、自分の力でなんとかしないといけないから本当にしんどい。
Django REST Frameworkの問題についてはだいぶ分かってきた。確認作業はあともう少しといった所。
最小世界はデプロイできた。できる限りこの世界で生活してみる。何からやるのが良いんだろう。いつまで生きられるか分からないから、すぐに対応できる所から取り組んでいきたい。
お腹が空いたから何か食べよう。
Lispの勉強を進めたいな。
Rustも勉強したい。
あとアニメーションを付ける方法についても勉強したい。
初稿の連絡はできた。初稿のチェックを進める。
- 問題のある箇所の確認。
- 初稿チェック。
Emacs
- companyで処理がブロックされる問題を調べる。
とある2024年の事件について
後藤については、僕は賛同する気持ちがある。むしろ、よくやったとさえ思う。
僕達の憤りをよくぞ晴らしてくれた。人を人として扱わない連中に一矢報いてくれた。7人の内の誰かが、必ずお前らを追いつめてとどめをさす事になる。同じ事はいずれ起きる。