ffmpegでm3u8ファイルのURLを処理する際のエラー対応

ffmpegでURL付きのm3u8ファイルを処理する際に、

[https @ 0x55941b4b6f00] Protocol 'https' not on whitelist 'file,crypto,data'!

というエラーが発生した。

いろいろ調べたら、

Why does ffmpeg ignore protocol_whitelist flag when converting https m3u8 stream? - Stack Overflow

に対応策が書かれている。

ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i m3u8ファイル -c copy 出力ファイル

のコマンドで処理できる。

最初からhttpとhttpsをwhitelistに入れてほしい。

Fedoraで歌詞ファイルと一緒に音楽ファイルを再生する方法

.lrcという拡張子の歌詞ファイルと一緒に音楽ファイルを再生させたい。

GitHub - fedoracdu/lrc_mplayer: an enhancement of mplayer

を見つけましたが、使い勝手があまりよくない。再生中に早送りや巻き戻しができないし、途中で終了させたいときkillをしなければならない。

いろいろ調べたら、

music player - How can play mp3 and its LRC file together? - Unix & Linux Stack Exchange

に気軽な再生方法が書かれていた。mpvをインストールしておき、

mpv 音楽ファイル名 --sub-file=lrcファイル名

コマンドで再生ができた。

個人的にはlrc_mplayerのほうの表示がよかったが。

MPlayerで映像を上下反転して再生させる

先日

MPlayerで動画の映像を回転して再生 - hanaokaiwa's blog

で映像を90度回転することができたが、今度は上下反転の需要が出てきた。いろいろ調べたら、

MPlayer-w100の使い方

-vop flip

オプションでできそうだと分かり、早速試してみた。そうすると、

-vop has been removed, use -vf instead.

とのエラーが出てきて、代わりに

-vf flip

オプションで再生してみたら、できた。

ちなみに、左右反転して再生したい場合は

-vf mirror

でできる。

gitで特定なキーワードをソースコードから検索する

gitにはたくさんのブランチがあり、特定のブランチのソースコードに対してキーワードの検索が簡単ですが、すべてのブランチに対して検索することが難しい。

Using Git, how could I search for a string across all branches? - Stack Overflow

には検索の仕方が書かれています。

git grep "キーワード" $(git rev-list --all)

を実行するだけです。自分の環境では

bash: /usr/bin/git: Argument list too long

とのエラーが発生するため、

git grep "キーワード" $(git rev-list --all | head -n xxxx | tail -n 500 )

のように500件ずつ検索していました。

上記の参考リンクに

git rev-list --all | xargs git grep "キーワード"

との書き方があるが、自分の環境では

error: Out of memory, malloc failed

が発生した。

Windows11 ダウンロードフォルダーを開くとフリーズする問題の対応法

Windows11でエクスプローラーからダウンロードフォルダーを開くと、必ずフリーズ(応答なし)してしまう。

How To Fix Downloads Folder Not Responding on Windows 11,10

の「Solution #3: Change the Folder Settings」が効いたので、念のため操作方法を保存する。

日本語訳は以下である。

1.エクスプローラーを開き、左側のホーム→ダウンロードを右クリックし、メニューの「プロパティ」をクリックする

(ダウンロードを左クリックしてしまうと、またフリーズしてしまうので、要注意)

2.「カスタマイズ」タブをクリックする

3.「このフォルダーを次の目的に最適化」に「全般」を選び、下の「このテンプレートをすべてのサブフォルダーに適用する」のチェックボックスもチェックし、「OK」または「適用」ボタンをクリックする

なぜかこれでフリーズしなくなった。

Linuxのfindコマンドの結果に対して、複雑な処理を実施する

通常、Linuxのfindコマンドでは

find 条件 -exec 処理コマンド "{}" \;

で検索結果に対して、処理コマンドを実行している。

findの結果ファイルフルパスにスペースがない場合、

for a in `find 条件`; do 処理コマンド $a ; done

で検索結果ファイルに対して複雑な処理を行うことが可能である。

検索結果のファイルパスにスペースがある場合、

bash - if command in find -exec - Unix & Linux Stack Exchange

に実現方法が書かれている。

find 条件 -exec sh -c ' 処理コマンド "{}" ' \;

でシングルクォートの中で複雑な処理を行うことが可能である。

やはりシェルは深い。

WSLでFedoraをupgrade

WSLで動かすFedora 36をFedora 37にアップグレードしたい。

しかし、WSLでは再起動できないため、再起動時のアップグレードができない。

調べてみたら、以下のサイトにアップグレード方法が書かれている。

How to Upgrade to Fedora 37 In Place on Windows Subsystem for Linux (WSL) - DEV Community 👩‍💻👨‍💻

通常の方法より、以下のコマンドを再起動の代わりに実行する

export DNF_SYSTEM_UPGRADE_NO_REBOOT=1

sudo -E dnf system-upgrade reboot

(-Eで設定されたDNF_SYSTEM_UPGRADE_NO_REBOOT=1変数を利用、ここで「Reboot turned off, not rebooting.」と表示されるはず)

sudo -E dnf system-upgrade upgrade

(通常再起動時に実行されるアップグレードを実行)

思ったよりは簡単であった。