オススメ

なんだか画面が固まっている。マウスも受け付けない。キーボードも。

それ固まってますから

記憶の限り、6年ぐらいこんなかんじなのですが、次のように設定して回避してます。たぶんいちばんカンタンな方法だから採用しています。(AMD RADEONだから?!)



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
inxi -Sz
System:    Host: phantom Kernel: 4.4.0-47-generic x86_64 (64 bit) Desktop: Cinnamon 3.0.7        Distro: Linux Mint 18 Sarah


#dconf-editorをインストールして起動

sudo apt install dconf-editor
dconf-editor

起動後(図のように)

org > gnome > desktop > lockdown で
disable-lock-screen をチェック(スクリーンロックしない)

これで固まらない。当方では目覚ましがスペースバー。それで起こせるようになります。
リビングPCなのでまぁいいかです。外にもっていくノートPCだとあまりよろしくないかもですね。

●追記:その後の設定

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
●その数日後
$ inxi -Sz
System:    Host: phantom Kernel: 4.4.0-47-generic x86_64 (64 bit) Desktop: Cinnamon 3.0.7
           Distro: Linux Mint 18 Sarah

カーネルは同じなのですが、うまく寝ないし起きなくなってます。よくわからないけれど、次の設定にして様子をみることにしました。


太字部分のチェックを外して様子見。根拠レス。





Windows起動後に、ubuntu/MINTが起動しなくなった場合の復活の呪文

復活の呪文:事実上Windows10の場合。NTFSがらみで一般ユーザーでのXが起動しなくなった場合。

単純にXの起動までできるようにする場合の簡単対応。ルート権限の場合は、sudoは不要ですがあっても問題ないです。

症状としては、Xが起動しないでコンソールで止まってしまう。

対応としては、/etc/fstabから/(root)と/home以外のntfsマウント行を削除(rem)すると起動するってことになります。



コンソールで、fstabを編集し再起動します。その前にオリジナルをバックアップしておきます。
cd /etc ; sudo cp fstab fstab.original
sudo nano /etc/fstab
#コメントアウトしない行は、/と/homeのみ、大抵のひとはそれ以外は一旦remってだいじょうぶなはず。オリジナルに書き戻すので、2行残してあとは削除ってかんじでばんばん、と。

復活の呪文:ntfsfix

ストレージを6台接続している場合、自己責任でてきとーに済ませたい私の場合は、以下をまとめて実行。一旦Xで再起動する場合です。しない場合は、上記のコンソールで一括発行でもよいです。無駄な部分がありますね。aと数字は各自調整してください。間違えても何もしないだけです。NTFSに対してのみ効果があるわけで。

末尾に「NTFSをリストアップしたうえで、必要なコマンドを表示する」っておまけを記述しました。

どうなっているか見てみよう。
sudo fdisk -l | grep -P 'NTFS|Microsoft'

#以下、治してみよう。理解したうえで発行してください。
sudo ntfsfix /dev/sda1
sudo ntfsfix /dev/sda2
sudo ntfsfix /dev/sda3
sudo ntfsfix /dev/sda4
sudo ntfsfix /dev/sdb1
sudo ntfsfix /dev/sdb2
sudo ntfsfix /dev/sdb3
sudo ntfsfix /dev/sdb4
sudo ntfsfix /dev/sdc1
sudo ntfsfix /dev/sdc2
sudo ntfsfix /dev/sdc3
sudo ntfsfix /dev/sdc4
sudo ntfsfix /dev/sdd1
sudo ntfsfix /dev/sdd2
sudo ntfsfix /dev/sdd3
sudo ntfsfix /dev/sdc4
sudo ntfsfix /dev/sde1
sudo ntfsfix /dev/sde2
sudo ntfsfix /dev/sde3
sudo ntfsfix /dev/sde4
sudo ntfsfix /dev/sdf1
sudo ntfsfix /dev/sdf2
sudo ntfsfix /dev/sdf3
sudo ntfsfix /dev/sdf4

HDD/SSDを1台1区画パーティション分けなしって状態でつかっている人なら(わりと最近ではそういう人が多いと思いますが)、 sdX1 みたいにするだけですね。

■覚えておくといいのは以下ぐらいかも。



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

#再起動せずに、修正したfstab記述通りにストレージをマウントする
#sudo mount -a

#fstabを任意のエディターで編集(最低一つのコンソールエディターは使えないと困る)
#sudo nano /etc/fstab
#sudo emacs /etc/fstab
#sudo vi /etc/fstab

#今PCに接続されているNTFSパーテションをリストアップする。必要なsdx1はこれでわかります。
sudo fdisk -l | grep -P 'NTFS|Microsoft'

試しにぺったんして、一度発行してみておくといいです。表示するだけです。MBRとGPTの両方がこれでリストアップできます。

#続き:リストアップしたうえで、必要なコマンドを表示する。
sudo fdisk -l | grep -P 'NTFS|Microsoft' | perl -pe 's|^(/dev/sd.\d\s).*?$|sudo ntfsfix $1|' | cat
#最後のcatはあえての蛇足。catをshに変えると実行できます。このコマンド行を/home/sos.txtなんかに書き込んでおくと困ったときに参照できますね。すぐに忘れるひと向け(自分向け)。

下記を斜め読みした範囲でいえば、Windows側のハイバネ切ったり、ディスク周りのデフォ設定を見直すといいんでしょうかね。W10の、それもこの夏以降のアップグレードで基本仕様が変わったのでしょう。以前はまったくこの症状は自分はでたことがないのですが、報告によれば以前からありますね。


http://askubuntu.com/questions/462381/cant-mount-ntfs-drive-the-disk-contains-an-unclean-file-system

#同じ試練が立ちはだかったので、試しに自分の実環境で実行した結果。
sudo fdisk -l | grep -P 'NTFS|Microsoft' | perl -pe 's|^(/dev/sd.\d\s).*?$|sudo ntfsfix $1|' | sh
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sda1 was processed successfully.
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb1 was processed successfully.
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb2 was processed successfully.
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdc1 was processed successfully.
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdd1 was processed successfully.



 

Linux Mint 18 へのアップグレードは、2つの方法があります。17.xから18へ。

Linux Mint 18 へのアップグレード


大事なことなので、書いておきます。大雑把にいえば表の通り。オプションは2つです。アップグレードしない(=17.xのまま使う)を含めると3つです。

5ヶ月後のまとめ:何度かインストールをしてみて:


やはりB:が良いと思います。 めんどうなようですが.bashrc、.profileなどを編集しつつひとつひとつ書き戻していくほうがいいかと。/config 配下なども同様に作業します。


A:17.3 OS起動状態から、直接アップグレードする。コマンドを複数叩く。

 △
時間長い。USB/DVD不要。推奨度低い。ISOダウンロード不要。ほぼ全ファイル置換の勢い。17.3のカーネルも残る(不要なら削除)。推奨度低い。


B:DVD/USBでブート。クリーンインストールして、必要な情報、設定を書き戻す。

 ○
結果的に時間が短い。基本的にクリーンインストールなので美しい。DVD/USBメディア作成が必要。ISOダウンロード必要。どちらかといえば推奨。細部にこだわったカストマイズをするには時間が必要だが美しいのでよしとする。

※好みは「私の好み」です。アップグレードしないことも含めて、検討されますように。私は前にしか進まない性格なので、迷わず18ですけれど。

このふたつです。前者はあまり推奨されていないようです。先日、A:を実行してみました。

更新作業中に、動画を複数同時再生しながらチェックしていたせいもあるんですが、3時間位かかりました。


  • B:の ほうが良かったかなと思います。B:はインストールできるのは確認できますので、バックアップと書き戻し作業(ソフトウェアセレクション含め)だけが問題になりますね。そのうち細部を確認してみます。
  • 追記:B:やってみました。よく考えてみればこれは普通の方法ですね。皆さん実施している方法のような気がします。ドットファイルを書き戻したりしながら、元のカスタマイズ環境までもっていくというわけです。
  • A:をやってみてから、うまくなければ、B:でもいいかも。安定したクリーンな環境を手に入れるには、B:ですよね。どう考えても。 いずれにせよ。A:でもB:でもうまくいっています。
  • パッケージの類は限りなく共通なのですが、A:(実質クリーンインストール)ではサムネイルがほぼ完璧に生成されているけれど、B:ではうまくないです。ひととおりチェックしてみたんですがお手上げ。  thumbnailという名前のパッケージをひとつづつ入れていったら、治りました。名前は忘れました。^^;

問題点、覚えているもの。

  • AMD fglrx が残ってしまった(Cinnamonがソフトウェアレンダリングでしか起動しなかった)。⇒apt remove fglrx* で削除。この問題は解決。
  • その他幾つか手動で直したのですが、覚えていません。イメージしていたものはパーフェクトな移行だったので、アレ、これならB:の方が時間も短くて済んでよかっただろうな、と考えたのは覚えています。

以下のリンクは必ず読んで実施したほうがいいと思います。めんどくさがらずに。

How to upgrade to Linux Mint 18

https://community.linuxmint.com/tutorial/view/2
https://community.linuxmint.com/tutorial/view/2316

SSDに関していえば、データ、全OS、複数世代のバックアップを常にとっていますので、仮に失敗してもすぐにもどせばいいんです。バックアップはしっかりとりましょう。

いまとなっては、timeshift 最高です。

自然言語処理、かぼちゃ、めかぶ。楽しい。桜の樹の下には屍体が埋まっている!

桜の樹の下には屍体が埋まっている!日本語形態素解析

日本語形態素解析。いま、とても幸せです。実に楽しいです。子供の頃の自分の前にあったらと思います。笑)、せめて大学の時。16.04にはうまくcabochaが入らなかったので、ほぼ素の14.04にいれてみました。懲りずにリブートしてみたら、すんなりcabochaもmakeが通りましたね。特に何をしたというわけではないんですが。16.04LTSで使います。

導入したのは、以下の3つでそれぞれ2016-07-13時点最新版です。

  • mecab
  • cabocha
  • crf++

かぼちゃ。最高です。

桜の樹の下には/梶井基次郎 青空文庫 ありがとうございます。もちろん著作権切れです。一度読んでみるといいです。速い人なら1分で読めます。



インストール完了後の出発点でこのレベルなので、楽しくって仕方がないです。やりたいことは山ほどあるので。
         桜の-D      
            樹の-D    
            下には-----D
                屍体-D |
          《したい》が-D
          埋まっている!
EOS
                 -----D                                                          
              これは---D                                                          
            信じていい-D                                                          
          ことなんだよ。-----------------D                                        
                      何故---------------D                                        
              《なぜ》って、-------------D                                        
                          桜の-D         |                                        
                            花が-----D   |                                        
                        あんなにも---D   |                                        
                              見事に-D   |                                        
                            咲くなんて-D |                                        
                            信じられない-D                                        
                          ことじゃないか。

めかぶの場合

自分のやりたいことに対してはローレベル向けなので、かぼちゃのほうが使いやすいかも。 「なんだよ」が全部区切られてしまう。

桜      名詞,一般,*,*,*,*,桜,サクラ,サクラ,,
の      助詞,連体化,*,*,*,*,の,ノ,ノ,,
樹      名詞,一般,*,*,*,*,樹,キ,キ,,
の      助詞,連体化,*,*,*,*,の,ノ,ノ,,
下      名詞,一般,*,*,*,*,下,シタ,シタ,,
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ,,
は      助詞,係助詞,*,*,*,*,は,ハ,ワ,,
屍体    名詞,一般,*,*,*,*,屍体,シタイ,シタイ,,
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ,,
埋まっ  動詞,自立,*,*,五段・ラ行,連用タ接続,埋まる,ウマッ,ウマッ,うまっ/埋っ/埋まっ,
て      助詞,接続助詞,*,*,*,*,て,テ,テ,,
いる    動詞,非自立,*,*,一段,基本形,いる,イル,イル,,
!      記号,一般,*,*,*,*,!,!,!,,
EOS
       記号,空白,*,*,*,*, , , ,,
これ    名詞,代名詞,一般,*,*,*,これ,コレ,コレ,,
は      助詞,係助詞,*,*,*,*,は,ハ,ワ,,
信じ    動詞,自立,*,*,一段,連用形,信じる,シンジ,シンジ,しんじ/信/信じ,
て      助詞,接続助詞,*,*,*,*,て,テ,テ,,
いい    動詞,自立,*,*,五段・ワ行促音便,連用形,いう,イイ,イイ,いい/云い/言い/謂い,
こと    名詞,非自立,一般,*,*,*,こと,コト,コト,,
な      助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ,,
ん      名詞,非自立,一般,*,*,*,ん,ン,ン,,
だ      助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ,,
よ      助詞,終助詞,*,*,*,*,よ,ヨ,ヨ,,
。      記号,句点,*,*,*,*,。,。,。,,
何故    副詞,助詞類接続,*,*,*,*,何故,ナゼ,ナゼ,,
って    助詞,格助詞,連語,*,*,*,って,ッテ,ッテ,,
、      記号,読点,*,*,*,*,、,、,、,,
桜      名詞,一般,*,*,*,*,桜,サクラ,サクラ,,
の      助詞,連体化,*,*,*,*,の,ノ,ノ,,
花      名詞,一般,*,*,*,*,花,ハナ,ハナ,,
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ,,
あんなに        副詞,一般,*,*,*,*,あんなに,アンナニ,アンナニ,,

桜の樹の下には/梶井基次郎 青空文庫から貼り付けてみました。 

インストールメモ


UTF-8オプション明示指定で./configure 

http://kumagonjp2.blog.fc2.com/blog-entry-82.html 

makeした順番は、mecab 、crf++ 、cabocha


Grub2をめぐるあれこれ。テーマ、背景、フォント。それが Cute Grub 計画

No Copyright Girl ノーコピーライトガール
No Copyright Girl /ノーコピーライトガール

Grubと戯れるという意味のない日常:: Cute Grub 計画

コンピューターの電源オン後、OS オペレーティングシステムを起動するためのブートローダーが先ず動きだす――ほぼすべてのLinuxディストリビューションにはGRUB(GRand Unified Bootloader)というブートローダで起動します。GNUのプロダクトになります。

誤解されやすいのですがGrubはLinuxを起動するためだけのものではなく、Windowsも起動できます。 汎用の非常に高機能なブートローダーです。

SSDに複数OSを導入し共存させるためには必須の働き者、ソフトウェアです。とても地味です。地味ゆえにすこしだけプリティにしてあげたいなというのが本稿の狙いです。 

さて、最近急にアクセスが増えだした記事です。
おそらく4Kモニターを導入してGrubメニューの文字が小さすぎるから、ここにたどり着いているのはないかと推察しています。
もし、そうならあまりおすすめはしませんが、grub-customizer がカンタンでよろしいかと思います。4K用にはどうしたらいいのかなど含め近いうちに別稿にします。

地味でよければ、この記事は不必要。だけど間違うと起動不能になります。

さて、話は戻って、だらだら、とLinux運用上、[不必要なこと]を述べていきます。まず、Debian/ubuntuなどのデフォルトブートメニューの「四角の罫を抜きたい」、そう思い立ちました。最初は些細な動機だったのです。


とても素敵なイラスト、ノーコピーライトガールさんの絵を使わせてもらってイメージを作ります。だいたいこんな風になるというのを示します。著作者:NCG @nocopyrightgirl
実際には、この女の子が不在のイメージ絵をOS選択メニューには表示しています。もったいなくないかですか。そこはもう何年も使っているのにブログにもかかない秘密の技を提示しないとご理解いただけないかもしれません。偶然発見したのです。3年前のことです。

これについては別稿にします。今日でお盆休みも終わりました。時間がなくなりました。今日から新しい日常です。



こういう風に、素朴にしたかっただけなんですが、シンプルな方法に至るまでが思いの外めんどくさかったという記録です。わかってしまえば簡単でした。現在はこのように表示されます。

手抜きなので、実際のブートメニューの絵ではありませんが、こんなかんじです。

下にヘルプ。自作テーマを利用すれば絵の中心オブジェクト(たとえば人物)の位置に応じて、メニュー位置(文字)を調整したりができるようになります。

当方は壁紙は原則使わない #000233 な生活25年ですが、ブートメニューの一瞬だけはまぁまぁ印象的にしたい派です。

枠線がはいらないのでシンプルで、地のイラストが引き立つというのがミソです。また可能な限りシステムファイルをいじらないのでカスタマイズに起因するgrubの不調可能性を極力排除します。

検証の記録 :: Cute Grub を意識していなかった初期

14.04LTS及び16.04LTSで検証開始。その後18.04LTS,20.04LTS, Manjaro,antegosでも問題なし。


昨日失敗して気を取り直して、Grubが生成に使うもとになるフォントを再生成しました。今日は、14.04LTSです。うまく行きました。フォント名を間違えていたのかもしれないですね。ともかく、狙いどおりです。目標は、

  • 基本的に、/etc配下のファイルは可能な限り書き換えない。
  • できれば自作テーマも使いたくない。
  • デフォルト表示から文字だけのシンプルなものに。罫線消したい
  • 日本語の文字列表示も化けさせたくない。
  • 日本語の文字の表示間隔もずらしたくない。適正なものに。
  • 背景画像は自由に設定するので、置き場所は、/home配下に。
です。これらの条件は、すべてクリアできました。今日は目視しつつ作業。

ただ新たな問題がひとつ。空グリフになっただけなのでレイアウトは変わらないと思ったのですが何か微妙に、ほんと微妙に変わっている気がする。気のせいかも。

結果、ほぼ、理想的なブートメニュー及びその更新環境が完成しました。 メンテナー提供ファイルが変わっても基本的に常にそれを受け入れてもだいじょうぶ。あまり凝ったことをしても仕方ない。管理がめんどうになるだけです。

特に、moebuntuな方々におすすめします。debian系のデフォルトから罫線抜いたほうが、絵が引き立つと思いませんか。

キャプチャイメージは、 これです。

背景画像のフォーマット種類と色数など

3年前(2013年)は覚えていませんが、現在Grub2はメジャーフォーマットにはフルに対応している気がします。表示できなかった絵はありません。といっても、GIMPで通常オプションで出力したフォーマットのみしか使っていませんが。それで間に合うので自分の中ではフルです。

Grub に扱わせる画像フォーマットは png が最適

トラブルフリーなので png で揃えましょう。jpgではエラーが生じる。

サイズは、10MBを超えていても特に問題なし。習慣的には256色に減色したりもしますが、現代では意味ないですね。たぶん。 GIMPでPNGってのが最近のお決まりの生成コースです。
だいたいFHD全色で2MB程度。10MBというのは、4K用に作成したものでチート(システムリクエストでリブートする手順のメモ行とか、SOS時に思い出したいメモなど)を書き込んだ「絵」です。
その絵を表示させることで知らないうちに刷り込むというわけで。わはは。

Grub用フォントを生成するための予備的考察

まず、Grub用フォントをアンダーコントロールに。Grub用フォントから生成しはじめます。
新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

サンプル=UbuntuMonoからサイズ24のフォントを作る場合
grub-mkfont --verbose --range=0x0-0x7f --size=24 --output=./ubuntumono-b24.pf2 /usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf

ubuntu/mintなら、フォントの配置、フォント名がこれで合致しますので、
たとえば、デスクトップでこのコマンドを発行すると、

ubuntumono-b24.pf2

という、Grub用フォントができます。指定しているオリジナルはおおざっぱにいえば日本語部分を含んでいないフォントです。いい忘れましたが、GrubのフォントはTTFやOTFではないのです。それが前提になります。

上記コマンドを発行する上でのポイント、方針は、

  • アスキー文字だけにして、それ以外は空にします。結果、罫線が化けないし、既存テーマのままでよい。半分嘘です。この作戦はフォントサイズを選ぶ上、ロケールが日本語だとうまくないです。結局、自分のウォンツから、この段階でThemeそのものをあらたに作成しました。笑)*1
  • フォントはモノ(MONO)を選んだほううがいいと思います。いわゆる等幅アルファベットです。罫がずれようが何しようが気にならないひとは、いろいろ試してみてください。今、最終的に自分が使っているのは、Takaoから一部グリフを抜いたGrub用に特化したフォントです。日本語も表示できます。
余談:注*1)デフォルトのテーマのメニューエリアがボックスになっていまして、そこが文字罫線だったりしますね。 この存在がばけなくても私の美意識上許せないので消したい。デフォルトはあまり弄りたくない。そこで

  • 既存フォントそのものから、グリフを削除して、それから生成。--->フォント存在しない印がでる
  • 既存フォントそのもののグリフを空白に置き換えて、それから生成。--->これも意図通りにならず。※指定フォント名を間違えていただけで考えた手順に間違えはなかったです。
よって、めんどくさいので、安直にGrub2テーマそのものを作成しました。罫線/Boxの抑止。文字と背景画像のみ。メニュー配置が右側へ65%ふってある、程度です。いうほどわがままさんじゃありません。
Grubをいじって思うことは、gfxmode 24bitだろうがなんだろうが、フォントのレンダリングが汚いことには代わりはないので、こだわっても仕方ないな、ということですかね。4K導入後にgrubのアップデートがあったので都合設定ファイルをいじってみたのですが、超綺麗!! WindowsのブートマネジャーはXGAなんですがGrubでは3840*2160でフォントも十分綺麗です。 Windowsのブートマネージャでも同じだし、「絵」は十分綺麗に表示されるので、ま、いいか。デフォルトでよいならそれが一番です。  いいたいことは、Grubは美しかったです。

テーマ作り終えてから画像検索でググッて気がついたのですが、ディストリビューションによってはデフォルトのブートメニュでお気に入りになりそうなのがありました。そこから流用すれば速かったかも。Fedra系ですが。

また、Gnome-lookあたりのテーマにしても、けっきょくただ背景画像を変えた「だけ」、フォントを変えた「だけ」が「大半」なのでちょっとおもしろくないです。burgなら設定も含め自由度が少し高いので使っていたのですが、実質ディスコンなのであれ。カスタム支援としての、Grub-Customizerは昔はお世話になったけれど、今は不要。むしろないほうがいいかもです。一時よりエラーが減ったもののまだエラーが多いので信頼に欠ける気が若干します。そんなかんじ。仲のいい友達になら、使うな、と助言します。友達以外なら紹介はする、2枚舌。もっともPPAですしね。そのあたり注意が必要です。

Grub用フォント生成::一括の呪文

結論追記:一括の呪文 bash


mkdir fonts4grub  ; cd fonts4grub

for i in {8..144}; do grub-mkfont --verbose --range=0x0-0x7f --size="$i" --output=./ubuntumono-b"$i".pf2 /usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf ; done ;

緑のフォントファイル名をお好みに。outputファイル名も適宜。
これを実行すると1秒後ぐらいには137個のgrub用フォントができます。
サイズは8Kモニターでも満足できると思いますが、16K時代に備えて、なんなら512ぐらいまで生成しておくといいかもしれません。必要なものだけ残してあとは捨てればよいです。

このテストファイルで、 3,342,336バイトです。実際にはくみ込んでいません。使わないフォントなので。

長い割り込みでしたが、話はフォント生成にもどります。
テストする場合は、黄色の3箇所だけ書き換えて試してみてください(冒頭に戻る)。この段階ではGrubに組み込むわけではありません。生成だけですからブートしなくなるなんてことはないです。一旦生成したら、あとはお好きなように。著しく小さなサイズのフォントです。アルファベットプラスアルファ以外は表示できないです。逆にみればそれらは空白なのでいいのです。(困ることもあります。)

サイズは、16、20、24と3種類ぐらいあるといいかも。まとめて作っておけばいいので、数字をかえてみるとよいです。そして、

などといいつつ自分用は、これだけ説明的には用意しています。わはは。
ubuntumono-b16.pf2  ubuntumono-b24.pf2 ubuntumono-b30.pf2  ubuntumono-b48.pf2 ubuntumono-b20.pf2  ubuntumono-b26.pf2 ubuntumono-b32.pf2  ubuntumono-b64.pf2
/boot/grub/fonts にでもコピーしておくといいかも。自分はそうしています。パーミッションは644。

実行例 ひとつづつフォント作成する場合

grub-mkfont --verbose --range=0x0-0x7f --size=24 --output=./ubuntumono-b24.pf2 /usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf 
Unknown gsub font feature 0x61667263 (afrc)
 
Font name: Ubuntu Mono Bold 24
Max width: 12
Max height: 21
Font ascent: 17
Font descent: 4
Number of glyph: 100



Rescue mode 4Kコンソール文字サイズをなんとかしたい


自分用メモ 割り込み追記:: 4Kコンソール文字をとりあえずなんとかしたいと試行錯誤中。以下は4Kにする以前の例です。その後も調べてないので判明していません。Rescue mode の時だけ字の小ささを痛感するわけで4k/UHDモニターに更新してから4年強経過しますが必要に迫られたのは一度だけでした。すぐに治せたので特に困ってないわけですが。

/etc/default/grub

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="saved"
#GRUB_HIDDEN_TIMEOUT="0"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="10"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL="console"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE="1920x1080x32"

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID="true"

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

GRUB_THEME="/boot/grub/themes/bootfield/theme.txt"
GRUB_SAVEDEFAULT="true"
export GRUB_COLOR_NORMAL="light-gray/black"
export GRUB_COLOR_HIGHLIGHT="red/black"
export GRUB_MENU_PICTURE="/home/ehhen/Pictures/bootwall/abyss.png"
#GRUB_DISABLE_LINUX_RECOVERY="true"
GRUB_GFXPAYLOAD_LINUX="keep"
GRUB_FONT="/boot/grub/unicode.pf2"




ハードウェアアクセラレーションを有効にする。 Linux MINT and ubuntu LTS

Linux MINT and ubuntu LTS でVDPAU(ハードウェア再生支援)を有効にする

HW再生支援をめぐって最近変った気分と自分なりのベストプラクティス

相変わらずRADEONです。最近の気分をまとめます。

  • hw支援なし(CPU)> vaapi >vdpau が今の環境ではベストプラクティス
  • hw支援ありのほうが微妙なトラブルに遭遇する可能性あり
  • 十分速い環境なら、HWアクセルを効かさないほうがよい結果
  • mpv であれば vo=gpu と hwdec=no がマイベストチョイス

試行の結果については、mpv player mpv.conf 6年育てた設定ファイル input.conf vaapi/vdpau にHW支援をめぐる見解を記しています。

自分の中では特別な事情でもなければ、hwアクセルを効かせる必要はないというかんじになりました。基本CPUが速ければ大抵のことは解決するってことかな、と。

これまでHW支援についてどう考えていたのか

さらに追記:2018/09/13

HW支援についてManjaro は標準導入されていますが、MINTはユーザーが追加しないといけませんので、この記事の通りでよろしいかと思います。
VDPAUが効かないのでおかしいなと思って確認したら、MintではMESAなどが入ってません。
数年追いかけているわけですが、現在のMESAのできはみなさんのおかげでかなり品位が向上していると思いますので、どんどん使っていけばよろしいかと思います。

さらに追記;2017/02/10

本日付のGPUドライバの刷新で、動作が非常によくなりました。VDPAUなどは有効にしています。

追記の追記:2017/01

4Kモニターに変更してからいろいろテストしました。結論をいえば、ハードウェアアクセラレーションを無効にしてソフトウェアデコードしたほうがよい。ドライバそのものが遅すぎる気がします。RADEONの話です。他のGPUの方は違う印象だと思います。
もどしました。

当方の今日の環境:AMD RADEON R7 360 ➡ Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]

末尾参照。VA-APIとの比較::現在ではvaapi がオススメ

(以下、過去稿、記録のため削除せず)

試した範囲でいえば、VDPAU>VA-APIです。後者は厳しい処理で目視でわかる程度にコマ落ちします。したがって、当面、mesa-vdpau ドライバを導入します。HW支援が選べるアプリケーションでは、VDPAUを明示的に指定して用いることにしました。

追記:削除しました。テストしている範囲ではうまくいっていました。
mint 18で試して、メインのubuntu16.04にも導入し、 メインから結局削除。mint18には残しておきます。

当方の環境ではデフォルト状態がベストということなのかなと。悔しくなんかないんだからね。テストしたのはmpvのみです。多少のCPU負荷に目をつぶれば、HWアクセラレーションを効かせない設定にしておけばいいだけともいいますね。

これまで通り、HW支援を効かせたい場合はデフォルトでVA-APIを選択することにしました。実験環境のmint18の方ではVDPAUでしばらく試行錯誤しながら様子をみてみることにしました。よくよく考えてみれば、VDPAUの必要性はとりあえずないので、デフォルトの状態が一番なのかな、と。

ただし、ffmpegでは「Supported hwaccels: vdpau」なのが少々。

mesaドライバを導入します。

新規にターミナル(端末)を開きます。CTRL+ALT+T

sudo apt-get install mesa-vdpau-drivers vdpauinfo


再起動

※ドライバの削除は次のコマンドでよいと思います(私は結局削除しました)

sudo apt remove mesa-vdpau-drivers vdpau-driver-all vdpauinfo

テストします。ターミナルから直にコマンド発行

vo=opengl は、vo=gpu 仕様変更されています。ご注意を。

mpv --vo=vaapi *OP*
mpv --vo=vdpau *OP*
mpv --vo=opengl *OP*
mpv --vo=opengl-hq *OP*
mpv --vo=xv *OP*

*OP*というのは、x264ファイルです。数秒動画だとCPU負荷がわからないので1分以上のファイルを選んだほうがいいですね。いろいろな種類のファイルも試したほうがいいかもしれません。コンテナ、コーデックなど変えてみたりしながら。
mpvのconfigの設定は済ませていることが前提です。リンク先サンプルはHW支援をオフにしています。hwdec=vdpauなどに書き換えて使ってみてください。


定義ファイル作成がうざったいなら、コマンドラインで指定してテストでもよいです。こんなかんじ。1行です。

mpv --vo=opengl --hwdec=vdpau --hwdec-codecs=h264,vc1,wmv3,mpeg1video,mpeg2video *OP*

H.264のテストなので、以下がシンプルで等価。
mpv --vo=opengl --hwdec=vdpau --hwdec-codecs=h264 *OP*


テストします。 (configに設定を書いています)

mpv *OP*
   cplayer: Auto-loading profile 'vo.opengl-hq'
   cplayer: Playing: DOPx264.mp4
   cplayer:  (+) Video --vid=1 (*) (h264)
   cplayer:  (+) Audio --aid=1 --alang=jpn (*) (flac)
   cplayer: AO: [alsa] 48000Hz stereo 2ch s32
        vd: Using hardware decoding (vdpau).
   cplayer: VO: [opengl-hq] 1920x1080 vdpau
  term-msg: FPS: 23.976
statusline: AV: 00:01:31.000 / 00:01:31.009 (99%) A-V:  0.000 Cache:  0s+0KB
[-----------------------------------------------------------------------------------------------+-]
   cplayer:
   cplayer:
   cplayer: Exiting... (End of file)

目視レベルで、支援なしと比較して、CPU稼働率はけっこう少なくなります。効果あり。いまのところ安定しています。

サポートされているコーデックをいまさら確認。

グラフィックカードにも依存します。
以前のubuntuであればもう少し設定がめんどうでした。サポートdecodeerが表示されている=vdpauが有効。(有効でない場合は、数行のエラーメッセージで終わりです。昔と違って何も設定はいらないのでしょう。

vdpauinfo

display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name   width height types
-------------------------------------------
420    16384 16384  NV12 YV12
422    16384 16384  UYVY YUYV
444    16384 16384  Y8U8V8A8 V8U8Y8A8

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                    3  9216  2048  1152
MPEG2_MAIN                      3  9216  2048  1152
H264_BASELINE                  41  9216  2048  1152
H264_MAIN                      41  9216  2048  1152
H264_HIGH                      41  9216  2048  1152
VC1_SIMPLE                      1  9216  2048  1152
VC1_MAIN                        2  9216  2048  1152
VC1_ADVANCED                    4  9216  2048  1152
MPEG4_PART2_SP                  3  9216  2048  1152
MPEG4_PART2_ASP                 5  9216  2048  1152

DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE      --- not supported ---
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8
R8G8B8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8
R10G10B10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8
B10G10R10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             y
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         -
HIGH QUALITY SCALING - L1        -
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              y        48     2048
VIDEO_SURFACE_HEIGHT             y        48     1152
CHROMA_TYPE                      y
LAYERS                           y         0        4

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 y
CSC_MATRIX                       y
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y
LUMA_KEY_MAX_LUMA                y

AMD RADEON R7 360

(2016-06-01)。今回のドライバ(VDPAU MESA)を組み込まないデフォルト状態では、次のようになっていました。VA-APIです。ubuntu16.04LTSです。 mint18がリリースされる前ですから、厳密な比較ではありません。
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
   cplayer: AO: [pulse] 48000Hz 5.1 6ch s32
        vd: Using hardware decoding (vaapi).
   cplayer: VO: [opengl-hq] 1920x1080 vaapi
  term-msg: FPS: 23.976
VDPAU関連を組み込まない状態:VAAPIが有効でHWアクセルが効いているかんじがします。ffmpegでは効かない(ffmpegはvdpau必須)。
sudo apt install libvdpau-va-gl1




emacs:ターミナルがちゃんと色が使える状態になっているのか。

emacsをターミナルでつかいはじめたので色が気になる……

なんちゃってemacs(emacs互換のあれこれ)から、本物に少しだけ移行をはじめました。
最初の疑問。――256色ちゃんと使えているのだろうか?!
使えています。



確認プログラムのインストール

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
8色以上がつかえているかどうかを検査するプログラムをダウンロードします。Perlのスクリプトです。256色のチェックです。

wget ftp://ftp.fau.de/netbsd/NetBSD-release-6/xsrc/external/mit/xterm/dist/vttests/256colors2.pl
 
githubのほうがいいかも。 
wget https://github.com/zhengkai/config/raw/master/script/256colors2.pl

実行します。上の見本キャプチャのようになればOKです。

perl ./256colors2.pl

ターミナル上のemacsでの確認 : スクロールしたら最後が256番。

emacs -nw

M-x list-colors-display

ubuntu/Linux固有ではありません。

Gnomeのキー操作をグローバルにEmacs風にする

キーバインド研究シリーズ

Gnomeのキー操作をグローバルにEmacs風にする。

https://askubuntu.com/questions/124815/how-do-i-enable-emacs-keybindings-in-apps-such-as-google-chrome/233539

デスクトップ環境全体をemacs 風味にするキーバインディング
当方にはちょっと使いにくいかも。適用と戻し方を記述します。

Gnome,Cinnamon,MATE

ターミナルで作業します。
CTRL+ALT+T

gnomeの設定

gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"

#デフォルトに戻す。

gsettings set org.gnome.desktop.interface gtk-key-theme "Default"


一部のCinnamon(mint本家)ではこれだった?!みたい。

gsettings set org.cinnamon.desktop.interface gtk-key-theme "Emacs"
# use emacs Emacs風にする。

gsettings set org.cinnamon.desktop.interface gtk-key-theme "Default"

# use default デフォルトに戻す

想像するに MATEはこうなるはず。

gsettings set org.mate.desktop.interface gtk-key-theme "Emacs"
# use emacs Emacs風にする。

gsettings set org.mate.desktop.interface gtk-key-theme "Default"

# use default デフォルトに戻す


結局戻しました

emacs好きすぎる人にはいいかもしれません。
スクショのキーまで変わってしまうのはいまさらきついです。 想定外でした。

gedit のキーバインドのカストマイズだけにとどめておきます。

http://d.hatena.ne.jp/msh_trumpet/20061217/1166366465

Perl5からPerl6に移行。たまにマルチバイト文字

Perl5からPerl6に既存資産を移行しようとしてはまったところ。

既存資産といってもへなちょこ、へっぽこスクリプトの類です。

echo あいうえお | perl6 -ne 's/^(.**0..3).*$/$0/, print $0 '
#3文字分行頭から取得 substrのほうが楽ですね。そういう話じゃなくて。
#
これに限らず、これまで{1,9}みたいに指定し量指定子を書くと、「..」にしろとかいろいろ怒られるので、そうしますが、まさか、{}そのものを使わない書き方とは思ってもみなかったです。
長年にわたって、(.{1,5})みたいにしていたので。

まとめると、短いperl5スクリプトでも影響は大きいですね。

1)後方参照の番号が変わった。これまで$1としていたのは、$0になる。ずれます。
2)範囲指定はだいたい[..]みたい。[A-Z]が[A..Z]になる。他でも同様に、「..」になった。たぶん一律。
3)これまでと同じ正規表現では通らないことがあるので、新しい仕様は読むべき。(読まないけど)
4)量指定子を使う時、{}は使えない。使わない。Perl6は別物と考えたほうがいいと実感する。

※perl5で文字数カウントを間違えないようするには(自分の場合UTF-8文字で数えるためには)、入力文字がUTF-8だよと教える必要があった。
Perl6は無自覚に使ってもUTF-8で扱ってくれる。つまりデフォルトで3バイトの1文字を3つに分解しようとして自滅したりはしない。たぶん空気のようにUTF-8の文字列が扱える(自分の使っている範囲。たぶんですよ)。

導入バージョン rakudo
This is perl6 version 2015.11 built on MoarVM version 2015.11

ls | perl6 -ne 's/^(.**0..7).*$/$0/, say $0 '

デスクトップあたりで端末開いて、上の一行を実行してみるといいかも。何もファイルは変更しません。
下記はperl5でマルチバイト(日本語)含めて数える場合

ls | perl -Mutf8::all -ne 's/^(.{0,7}).*$/$1/, print "$1\n" '

perl5でマルチバイト文字を扱う場合の劇的推奨。

このモジュールに全幅の信頼をおいています。なんか日本人でこれに言及しているのは自分だけの気がするんですけどね。笑) 便利ですよ。組み込むのも簡単だし。メリットは構文が簡素になるので、さくっと使い捨
てが書けます。「perl "utf8::all"」で検索しても2000件しかないし、ディストリのパッケージそのもののダウンロードだったりするので、ほとんど知られていないのかもしれません。わたしは、数年前UTF-8というキーワードでひっかるcpanパッケージは全部(ほんとうに全部)チェックしたので見つけました。以来ハッピーです。
現在、ubuntuの標準パッケージに含まれています。

以下ディスっているわけではありません!! 職業プログラマーが集まるサイトなどで、えんこーどして、でこーどして、ばいんもーどにして。。。とかよく見かけるんですが。うーん。ややこしいから仕事で間違えているんじゃないの?!

単純にUTF-8の入出力だけするのなら簡単です。その文字列を、区切る、数える、置換する、抜き出すなどなら、このモジュールひとつで、簡素に書けます。ほんとにびっくりです。大好きです。めんどくさいことは大嫌いです。




Zip の憂鬱。(2)そして、解決した。Xarchiver

【朗報】Xarchiver では、CP932なzipも自然に扱える

追記:必ずしもうまくいくとは限りませんね。申し訳ないです。結局、Zipはコマンドラインで操作することにしました。マウスでできるように右クリックメニューに組み込みました。

以前、自分用にパッチをあててシフトJIS対策してみたXarchiverですが、またあててみるかなとソースを落としてきて、まずmake(makeしてからdebainパッケージを作り、dpkgで導入)しました。(この段階ではソースはオリジナルのまま。自分のcp932パッチをあてる前です)。

あれ、問題ない。\(^o^)/ 今makeしたのを削除して(dpkg -r)

パッケージシステムから再導入。今度も問題ない。

これで多くの人がzipの憂鬱から開放されるかも



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
sudo apt install xarchiver
もしくは、
sudo apt-get install  xarchiver

その他方法、パッケージマネジャーsynapticなどで、xarchiver を選択して導入してみてください。

Xarchiverが好みでないのでメインのアーカイバーにはしたくないという場合も、zipに対する関連付けリストにいれておけば捗るかもしれません。めったにないんですけどね。

Zip文字化けを確認するためのテストファイル

たとえば、「ブラックジャックによろしく」http://www.hosino-kanata.com/kakusi/bjy/bjy.zip 。300MB。手持ちに文字化けするZipファイルがあればそれで確認してみればよいです。

Xarchiverとそれ以外(標準のファイルローラー、書庫マネージャとか言われる類のもの)で比較してみるとよいでしょう。

CPANでPerlモジュールを導入する。半自動=手作業での場合。

CPANコマンドでPerlモジュールを導入という場面は、年に一度もないので忘れちゃいます。年々頻度が減ってきている。perl でmakeのほうがわかりやすくていいのかな、自分の場合。パッケージ候補以外はできるだけいれないので。


それでもまれに必要に迫られることがあります。という場面。


CPANサイトで試してみようというモジュールを見つけました。
  1. AAA.tar.gz などの形式であろうがなかろうがソースをダウンロードします。右側。
  2. それを解凍・展開します。 
  3. 解凍ディレクトリに cdします。


新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T


#rootになるか。sudo付きでコマンドを発行します。
# perl Makefile.PL
# make
# make test
# make instal

今試したモジュールは、できあがるコマンドと衝突するperl コマンドが既にある(/usr/bin)ので、make install は発行していません。気がついてよかった。manも上書きされそうだし、パッケージ管理でまためんどくさそう。

日本語文字列ファイルを日本人としてソートする sort order

実験中です。

日本語文字列ファイルを日本人に違和感のない形でソートするために週末潰しました。
工程は、漢数字、ひらがな、カタカナのオーダーを恣意的にいじってみた段階です。準備作業として数値参照と実体のそれとの相互の変換スクリプトをPerlで作ったりした時間が90%(16進表記を変換したことがなかったので、そこから調べた。熟練ユーザーなら10分位でできちゃうと思います)。

表意文字を使っている僕たちですが、EUCやShiftJISの順番では使いにくい人も少なくないと思います。別に、ユニコードなどが表意文字に敬意を払ってないのはケシカランというつもりはないです。


[かなチーム]>〇 >一>二>三>四>五>六>七>八>九>[漢字その他チーム]

と評価されるようになっています。やりながら後追いで文献調べてこの手順でいいはずだなんて検査をしていました。一日触ってみて予想外に快適なので、表意文字のうち、漢数字以外の上、下などを変えます。ファイル名に使う文字で一般的に、位置関係を示す文字でやりすぎない程度にするには何が適切かを考えています。


$ export LANG="ja_JP.UTF-8" ;ls 試作段階での並び、表意文字の通り(改訂ja_JP)
一  二  三  四  五  六  七  八  九  十

$ export LANG="ja_JA.UTF-8" ;ls デフォルトはShiftJIS/EUC-JPと同じ。素敵な並び
一  九  五  三  四  七  十  二  八  六 

※ ja_JAロケール(内容はデフォルトja_JPと同じ)は作業の便宜上コンパイルしたものです。そんなもんありません。末尾に生成に用いたコマンド記してます。

WindowsやMAC OS Xを利用していても困惑する、漢数字まじりの問題はたとえばこんなかんじでしょうか。一般的な回避方法は知っていても気持ち悪いのは致し方ありませんね。
※作品世界では算用数字の9課ですが、たとえばこんなかんじ。 一太郎、三香子、二郎でもいいし、二頭身、九頭身とか、でもいいけれど。会社の部局などで、漢字が正規表記という場合もあります。アラビア数字でいいじゃん?! 自社ならいざ知らず、他社あて文書でそれをやってはまずいですね。たぶん。
$ export LANG="ja_JA.UTF-8" ;ls
公安一課  公安九課  公安五課  公安三課  公安四課  公安七課  公安二課  公安八課  公安六課

$ export LANG="ja_JP.UTF-8" ;ls
公安一課  公安二課  公安三課  公安四課  公安五課  公安六課  公安七課  公安八課  公安九課

初期変更

並び=ソートを画像で示すような状態にしました。まだテストなのですが、長年の鬱憤とおさらばできるかも。コマンドラインでも同等です。コマンドラインのsort Programでも同じです。

nemo


リストは、Wikipediaの2010年代アニメ一覧ページから「ががー」と生成。2015年まで。
このソートを見て不自然さを感じない人が多ければ嬉しいです。当たり前だと思うのが普通の気もしないではないですが。どうなんでしょう。エンティティは処理していませんのでガルパンがあれか。

ちなみに、caja でも同じです。nautilusでも同じでしょう。

作業メモ

http://archive.linux.or.jp/JF/JFdocs/Japanese-Locale-Policy.txt 1999年12月15日 1.03
というのがありますが、現在の世界は実質UTF-8なディストリビューションで溢れている中、EUC基準で書かれているので、過去の遺物なんでしょうか?! 最新がどこかにあるのでしょうかね?!

4.2. LC_COLLATE

当面、文字の照合順序は文字コードの順番とする。

各文字コードは次の順序とする。

 1. ISO 646 IRV

 2. JIS X 0201 カタカナ

 3. JIS X 0208

 4. JIS X 0212

この項目は実装の進行状況に合わせてより実用的なものへと改訂される予定で
ある。
※下線強調は筆者。
とあります。みつけたこのファイルの時点(日本語ロケールはEUC推奨)でも、実用的なものへの改訂可能性は伺われます。いや、何がいいたいかというと、そのままだっただけってことかなと。他国・他言語のロケールを調べてみても、固定する必要はないってことがわかりました。 ドイツの憲法改正数と日本のそれを比較するとわかりやすいかも。だめではないが固定されている世界。(是非など私見はおいておいて)

とりたてて、偉い人たちが崇高な理念の元に決めたりしているわけではなさそうなので、ほっとします。この時期までの慣例的な定義が今も残っているだけじゃないかと。

http://manpages.ubuntu.com/manpages/precise/man8/locale-gen.8.html
SEE ALSOlocale(1), localedef(1), locale(5), locale.gen(5), locale(7)

やっていること、やったこと


COLLATEの定義がそのままではわたしの脳味噌では読めないので、19000字?!だし。
・数値参照を実体文字(ふつうに読める文字)になるスクリプトを書いた。
・ 上のリバーススクリプトを同時に作成した。
・評価順をテスト想定通りにした定義を作成した。反映させた。確認してみた。

余談:i18n,l10n

echo 'internationalization' | perl -pe '$nagasa=(length $_) -3 ; print ($nagasa);print "字 :: " '
で改行除外して、たしかに18文字か。長いです。
echo 'localization' | perl -pe '$nagasa=(length $_) -3 ; print ($nagasa);print "字 :: " '10字 :: localization
Hamletの名セリフなら、
39字 :: To be or not to be, that is the question. T39n.

参考


任意のロケールをシステムに認知させるには、ロケールファイルを設定してコンパイルします。フォーマットにミスがあると構文エラーがでます。重複もチェックしてくれます。 「ja_JA.UTF-8」がオリジナルのja_JPです。切り替えて検査するために作っています。
sudo locale-gen ja_JA.UTF-8
Generating locales (this might take a while)...
  ja_JA.UTF-8... done
Generation complete.

sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.UTF-8... done
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
  ja_JA.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.

全部のロケール生成をしてみようなんて考えるとけっこう時間がかかりますし、おそらく使うことのない余計なファイルが生成されますのでご注意を。 だいたい340個ぐらい。intel i3クラスで540秒位もかかります。






fcitxでキーアサインがデフォルト値に戻るのを防ぐ。

fcitxでキーアサインがデフォルト値に戻るのを防ぐ

fcitxでキーアサインがデフォルト値に戻るのを防ぐには、一番上の上書き可能にするのチェックなしで運用します。コマンドとスクリプトは空でいいです。試しにいろいろやってみていた時のキャプチャ。



これで、fcitxを再起動しても、 キーボードのキー入れ替え/キーアサイン、キーバインドがもどったりしなくなりますね。

参考情報を探していたら、以下が見つかりました。そうなのか。
* デフォルトだと勝手に ~/.Xmodmap をロードしてくれます.したくない場合
は「設定」-「アドオン」内で "X Keyboard Integration" の設定を開き,
「システムの XKB 設定を上書き可能にする」のチェックを外す
か,~/.Xmodmap をリネームするなどします.
* 逆に .xinitrc 内で xmodmap したりしてる場合は上書きされてしまうの
で,.Xmodmap に書いて上記設定を有効にしておきます


https://www.facebook.com/PlamoLinux/posts/550840061636745

空にできなくなったゴミ箱::rootで作成したファイルをゴミ箱にいれてしまい削除できなくなった。

とにかくゴミ箱を空にする::削除できなくなったゴミ箱

ファイルマネージャーでルート権限を取得し、ルートが生成したファイル類をゴミ箱にいれた結果。ゴミ箱がクリアできなくなくなりました。
root/sudo でそうしたことを忘れていたわけですが。あはは。

新規にターミナル(端末)を開きます。CTRL+ALT+T

結論からいうと、次の1行で削除できました。
sudo rm -rf ~/.local/share/Trash/*

なるほどそうか。

GUIなら、たぶんどれかで解決。
  • gksudo nemo /home/名前/.local/share/Trash
  • gksudo caja /home/名前/.local/share/Trash
  • gksudo nautilus /home/名前/.local/share/Trash
  • gksudo xdg-open /home/名前/.local/share/Trash

pulseaudio が見つからない。A2DP接続は完了するが音がでない。16.04LTS

追記(2016-06-05):調子はいいみたい。起動後、Windows10並みの接続性の時もあれば、数秒で接続、音出し完了する場合もある。(シンク切替はコマンド発行しています)

追記:これ16.04LTS固有の「現段階」のバグじゃないかな。時々にじゃなくて、100%。この儀式を行わないとA2DPがsinkで見えていても音がでない。A2DPヘッドフォンを装着して、電源オン、即座に正しく繋がる(❤)。ここで音がでないので、下記コマンドを発行。sinkを切り替える。プロファイルがハイファイか確認/切り替え。30秒はかかる。

いままで一度もこの類のトラブルには遭遇したことはないのです。はじめて。

当方の環境だとA2DPは(誰でもだけど)Pulseaudioがないと使えないので、不思議だなと思っていたら、その他のアプリケーションでも音がならない。設定を済ませたJACKでは再生できる。 Askubuntuにありました。A2DPの解決策ではなくて、Pulse audioの初期化ですね。

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
次の一行で解決。
rm -r ~/.config/pulse; pulseaudio -k


(余談) 
当方の環境の場合 
pactl list short sinks
0 alsa_output.pci-0000_01_00.1.hdmi-stereo module-alsa-card.c\
 s32le 2ch 96000Hz SUSPENDED
1 alsa_output.pci-0000_00_14.2.analog-stereo module-alsa-card.c\
 s32le 2ch 96000Hz SUSPENDED
2 bluez_sink.FA_FA_FA_FA_FA_FA module-bluez5-device.c\
 s16le 2ch 48000Hz RUNNING   <-- br="">
 
 
ちなみに、ざくっと消すのはこれら。tdbというファイルが怪しいかも。
 
ls ~/.config/pulse
1a56528fecef49cba11733e164703617-card-database.tdb
1a56528fecef49cba11733e164703617-default-sink
1a56528fecef49cba11733e164703617-default-source
1a56528fecef49cba11733e164703617-device-volumes.tdb
1a56528fecef49cba11733e164703617-stream-volumes.tdb
cookie 
 


~/.config/pulse 以下を削除する。pulseaudio を再起動する。これですね。
後者は何度も叩いたのですが改善されず、ググりました。
 
ちなみに、/etc/bluetooth/audio.conf はなくても、A2DP接続できるみたいですね
 
ubuntu MATE 16.04
 
追記、うっかりしていましたが、この環境は、ubuntu MATE 16.04 に Cinnamon3.0、Blueberryを導入した環境です。
Blueberry を削除したら、A2DPのつながりにくさが改善されました。
あまり考えずにCinnamon推奨?!のBlueberryいれてみたのが悪かったようです(仮説)。

(参考、今こうなっている)dpkg -l | grep bluetooth

ii blueman 2.0.4-1ubuntu2 amd64 Graphical bluetooth manager ii gir1.2-gnomebluetooth-1.0:amd64 3.18.2-1ubuntu2 amd64 Introspection data for GnomeBluetooth ii gnome-bluetooth 3.18.2-1ubuntu2 amd64 GNOME Bluetooth tools ii indicator-bluetooth 0.0.6+16.04.20160214-0ubuntu1 amd64 System bluetooth indicator. ii libbluetooth3:amd64 5.37-0ubuntu5 amd64 Library to use the BlueZ Linux Bluetooth stack ii libgnome-bluetooth13:amd64 3.18.2-1ubuntu2 amd64 GNOME Bluetooth tools - support library ii pulseaudio-module-bluetooth 1:8.0-0ubuntu3 amd64 Bluetooth module for PulseAudio sound server

cat /etc/bluetooth/audio.conf cat: /etc/bluetooth/audio.conf: そのようなファイルやディレクトリはありません
一度作ったaudio.conf もおいていません。
 

NTFS上のファイル名の不具合を修正する。ubuntuからWindowsのファイルを治す。

仮称「NTFS+Win32だめ文字、パターン」

ファイルシステムとしてのNTFSではOKだが、OSとしてのWindowsでは許容されずファイル名に使うとややこしくなる(消せない、見えないなど)文字、仮称「NTFS+Win32だめ文字、パターン」というのがあります。ディレクトリについても同じです。

  • 末尾がスペースで終わるファイル名。 "大阪Lover " 
  • 末尾がコロンで終わるファイル名。"大阪Lover."

当方の癖や意図で、作るパターンはこの2つ。後者はWindowsしか使ったことがない人には理解できないかもしれません。それはそれで幸せ。このふたつを代表例に対応を例示してみます。

以下、renamej というのは、自分がパッチをあてたものなので、標準ubuntuではrenameです。

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

findを使って一括処理するのが楽なので、find前提です。たった一つなら、ubuntuのファイルマネージャー(Windows用語、エクスプローラ)で、リネームすれば良いのです。

末尾空白

末尾がスペースで終わるファイルを列記する。ディレクトリ限定
find . -type d -name '*? ' -execdir echo \"{}\" \;
#
その余分なスペースを除去する。リネームする。

(リネームの変化を確認) -n
find . -type d -name '*? ' -execdir renamej -n 's|\s$||' {} \;
(リネームを実行) -v
find . -type d -name '*? ' -execdir renamej -v 's|\s$||' {} \;
#こっちが賢いかも。
find . -type d -name '*? ' -execdir renamej -v 's|(.*?)\s$|$1|' {} \;

末尾ドット

末尾がドットで終わるファイル名を列記する。(MS-DOS制限が伝統のWindows)
find . -type f -name '*?.' 
#
末尾ドットのみまとめて削除(つまりリネームする)
find . -type f -name '*?.' -execdir renamej -v 's|(.*?)\.$|$1|' {} \;

#
末尾ドットのみまとめて削除(リネームする)ドット連続も一度にリネームする。
find . -type f -name '*?.' -execdir renamej -v 's|(.*?)\.*?$|$1|' {} \;


自分の場合は正規表現的にもこれくらいで対応できます。Bash on Windows で実行できるかもしれませんが試していません。Windowsを起動することがあればやってみよう。

完全な隠しディレクトリを作る裏技(単なる応用)


別の視点で考えます。積極的に考えると、末尾空白、末尾ドットなどを活用するとファイルが隠せます(エクスプローラーでは開けないよー、消せないよーなどの特性を活用するわけです)。先頭ドットなども組み合わせて、いろいろ頑張ってください。何のこっちゃ。初心者には理解できないからいいのですね。この節はWindows視点で書かれています。

根こそぎ、変換はしないほうがいい「:」

「:」に関しては、根こそぎはやめたほうがいいです。一般ユーザーには使わせませんが、WindowsOSは「:」の入ったシステムファイルを作ります。根こそぎやって、少し泣いた。笑) 慎重に条件指定してください。

メモ
\ < > : " / \ | ? *

AUX、CLOCK$
COM1 ~ COM9、CON、CONFIG$
LPT1 ~ LPT9、NUL、PRN

おまけ、fuseNTFSでクラッシュが置きた場合などに残るドットファイルを削除する。ubuntuなら /media/ 配下に通常できます。デフォルトでそこにマウントされるので。以下例示。

cd /media
find . -name '.fuse*'  で探す。

削除したい場合

find . -name '.fuse*' -delete 探したリスト通りでよければ問答無用で削除する。

AMD/ATI グラフィックドライバ ubuntu 16.04LTS

満を持して、グラフィックカードを差し替えました。ubuntu 16.04から、fglrxがなくった(つまり標準ドライバのみになった)わけですが、自分の結論からいうと次のようなかんじ。

追記2016-07-13:多くを望まなければ常用に差し支えないレベルにまで来ていると思います。 安心して使えます。多くを望む=VDAPUの完全なる動作を望むなど……。HD6500Dに関してはもはや枯れているってかんじだったので、R7 360についての言及です。

追記2016-05-17:17日にカーネル関係がアップデートされてから、妙に安定しています。R7 360。まだ24時間経過していませんが、いいかんじ。追記2016-05-19やっぱり微妙。このLTSは6月末ぐらいにならないと安定しないかも。自分の心象的には14.04の場合も2ヶ月かかったので。
  • Kernel: 4.4.0-22-generic x86_64 (64 bit) 
  • Desktop: Cinnamon 3.0.2 
  • Distro: Ubuntu 16.04 xenial

AMD/ATI RADEON HD6500D 


  • VDPAU(ハードウェア支援)有効でも使える。もともと遅いので効果は僅か。
  • 全体に安定している。安心して使えた。標準ドライバが安定しています。
  • fglrxはうまくない。わけでもないが、標準でいい。

AMD/ATI RADEON R7 360


  • VDPAU(ハードウェア支援)有効では使いものにならない。ハードウェアアクセル関連ドライバは削除すべき。削除しました。(標準ではインストールされていませんのでご安心を)
  • 安定しているかどうかは不明。(再評価開始したところ、14.04LTS系では使いものにならず、調達したもののもったいないけれど外していた)。
  • firefoxのクラッシュが頻発する。Windows10(32bit/64bit)でもこのGPUを使っていると似たかんじなので、AMDという会社(の製品)がためっぽいといいたくもなる。
自分の今日の結論はこうなりました。AMDは茨の道。今後に期待です。2年ぐらい待てばいいのかな。あはは。自虐的にならざるをえないですね。

いまんところ、16.04LTSは評価中のままなので壊れてもいいや。そういうわけで(どういうわけか追加した)、Cinnamonがまっとうに動作しなくなったので、数日前リリースされたばかりのCinnamon3.0に入れ替えてみました。MATEやGNOMEはうまく動いています。例によってunityだけは入れていません。

動画変換、音声変換、コーデック、コンテナ変更 自由自在::切り貼りして即使えるffmpeg 加工例文集

ffmpeg :: いまや世界標準。バックエンドで動作させるだけでなく、たまには主役として扱ってみる

切り貼りして即使える,がコンセプト

気が向いた時点で例文を書き足していこうかと思います。

いくつかのパターンさえメモしておけばたいてい対応できるのではないでしょうか。
Linuxでの結果ですが、インストールさえすればWindows10でも同様に扱えますので、Windowsユーザーの方もどうぞ。これを機会にWSL(Windows Subsystem for Linux)を使い始めてもいいでしょう。試してみるとあっけなさ、カンタンさに特にWindowsユーザーであれば驚くと思います。
もっともWindows用バイナリも配布されていますね。Windowsユーザーでもコマンドはまったく同じです。

最小限知識 :: ffmpegの基本はファイルを読んで別の形式のファイルに変換すること


これだけ覚えておけば大丈夫です。
フォーマット=コンテナの変換は拡張子を変えるだけです。 flv をmp4 など。
ffmpegは拡張子判別が基本です。
タイプがあるとしらんがなとエラーを吐きます。あらゆる形式に対応しているわけではありません。ほぼ必要と考えられる形式には対応しています。コンパイルオプションにもよります。

ffmpeg  -i infile.flv    out.m4v
ffmpeg  -i infile.mov out.mp4

まとめると

ffmpeg  -i infile.ぐしゃ out.ほにゃ

 ... みたいな感じが基本。覚えるのはこれだけです。(本当). テストにでます。


変換が完了しても、カメラなどからひっぱったオリジナルファイルは残しておいたほうがいいです。
のちのち再生不良気味になった場合にオリジナルから、その時のffmpegなどで使いやすいフォーマットに変換すればいいからです。
x264は枯れているといいきってもいいと思いますが、hevc対応ソースは発展途上といえるので特に注意が必要かなと考えています。

WAVからMP3を生成::当たり前すぎるけど、音声ファイルの変換にも使える

wav から mp3を生成する例
ffmpeg -i audio.wav audio.mp3 
記事末尾のような一括コマンドで処理すれば、カップヌードルを食べている間に100曲は処理できると思います。

ビデオとサウンドを無劣化コピーするか、変換/エンコードしてもいいのか。脳裏においておきましょう。時間の節約にもつながります。

たとえば、WindowsビデオのWMVをm2ts形式にする例文

例として、WindowsビデオのWMVをm2ts形式にしてみる。
x264エンコードしなおして、音声はそのままコピーする。
ムービーメイカー(Win7の無料のアレ)などでうまくいかなければ、別コンテナで試してみるといいかも。

ビデオコーデックと音声のそれを別々にも指定できますし、劣化なしを望むからコピーでもいいわけで。ffmpegとコンテナが対応していれば次のようにします。無劣化でコピーすると品質の担保と時間節約、両方に効果があります。

絵 は、x264/AVCでエンコード、サウンドはコピー。基本はこんなかんじ。


ffmpeg -i in.wmv -vcodec libx264 -acodec copy out.m2ts

音質とサイズバランスを考慮 libfdk-aac で最強手前のAAC/m4aを作る

穏やかな着地点というかんじ。libfdk-aacについてはググっていただくとして、音質に定評のある変換です。

ffmpeg -i "heavy.flac" -ar 48k -vn -ac 2 -ab 256k -acodec libfdk_aac -profile:a aac_he "output.m4a"

CD-DAのケースなら

-ar 44100

に差し替える。44.1k でも通るかも。

これで78点。再評価すると96点になるかも。nero AAC よりも良いのではないでしょうか。

アフターバーナー(afterburner)はこれで効いています。よって付けません。長くなるので。
このffmpeg はコンパイルが必要です。少しめんどうです。
ディストロ標準では動作しませんのでご注意を。
この項目は、2020年8月20日にコンパイルしなおした ffmpeg にて動作確認して、加筆しています。

スマホでなんでも持ち歩きたい人 :: HEVCで小さめのファイルにしたい場合

高圧縮(=サイズ小)でも粗が目立たない動画にする例。HEVCは画質が良いわけではないです。良くなるわけでもないです。サイズの割に高画質と私 は理解しています。

CPUが遅いとエンコードに笑えるほど時間がかかりますので、電気の無駄かもしれません。HEVCが正式名称ですが、あえてオプションは過去の経緯を 踏まえたものになっているのでしょうか。

ffmpeg -i in.mp4 -vcodec libx265 -acodec copy out.m4v

サイズ半分というか、40%ほど小さく圧縮ってかんじかもしれません。microSDカードのないスマホを使っている場合にどうしても保存しておきたい動画があるんだ!! みたいな場合かも。今の時代、そこまでストレージに困窮することはないはずなので。Nexus6やiPhoneですね。クラウドが常識になってきたのでそれもあまり意味はないかもしれません。
と、4年前に書いたわけですが、もうhevc は標準ですね。各種ツールも信頼してもよい。

GPUハードウェア支援・アクセラレーションを有効に

エンコーディングをx264でやり直して、audioはそのままで、m4vコンテナにする。ついでにvdpau(unix/linuxのHWアクセル)を効かせる。WindowsならDXVA2か?! HW支援は推奨されていません(というメッセージがでます。そのうち正式対応されるかも)
重箱の隅をつつく話ですが、HW支援を使わずにCPUにがんばってもらうほうが画質面では有利じゃないでしょうか。



ffmpeg -hwaccel vdpau -i in.file -vcodec libx264 -acodec copy outfile.m4v

ffmpeg -hwaccel  vaapi -i in.file -vcodec libx264 -acodec copy outfile.m4v 

ショートクリップを生成する::時間指定で範囲切り出し、抜粋

45秒から10秒切り出し。
最初に切り出し開始のスタート地点を指定する、このオプションの順番がいいかも。範囲切り出し。例文はエンコ、デコードもしないで済むファイル内容・設定なので超速いです(単なるコピー)。必要ならlixb264などでどうぞ。GUIアプリより便利かも。

ffmpeg -ss 00:00:45 -i infile -t 10 -vcodec copy -acodec copy ./cut/cut.m4v

BDAVフォーマットの「マイBlu-rayディスク」作成の予備作業

Windows7のムービーメーカーで作成したWMV形式のファイル。これを一括してビデオはH.264、音声はAC3に変換しながら、コンテナをm2ts形式にする。

たぶんですがBDAV作成でもっともトラブルがないコーデックがこの組み合わせなのではないかと思います。一時期凝ってみたがいまは飽きた。数が多い場合は、find を使うと効率的です。Windowsでは forfiles などでお願いします。

find . -name  "*.wmv" -exec ffmpeg -i {} -vcodec libx264 -acodec ac3 -ab 320k {}-x264-AC3.m2ts \; 

途中表示ではこんな風になります。

Stream mapping:
  Stream #0:2 -> #0:0 (wmv3 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (wmav2 (native) -> ac3 (native))

※テストに使ったファイルはWindows7ムービーメーカー出力です。音声、映像共にエンコードしますので、時間がかかります。市販BDのようなかっこいい メニューのあるBDディスクを作るわけではありません。BDMVの場合は素直にWindows市販ソフトウェアを購入したほうが楽でいいかと思います。

いずれにせよ。
はなからソースファイルがm2tsという人は高機能ビデオカメラ所有者は別としてそんなに多くない気がしますので、結局のところ、トランスコード(エンコード)するわけで、結果すっげー 時間がかかるわけですね。

※ 準備作業です。この生成されたファイルをそのままBDに焼いただけでBDAVディスクになるわけはありません。 BDAVの仕様に合わせたファイルを更に生成し、ディレクトリ構造を適正にして焼き込みます。
めんどくさいです。ディレクトリ構造まで作成できるスクリプ トは組んでみましたが、とにかくフォーマットを合わせるのにCPU資源が必要なのでいまいちテンションがあがりません。

4Kアップスケール :: たとえばm2tsにしておいた2kファイルを4kにアップスケールする(カレント一括。mkvコンテナへにしちゃいます)

一括
for f in *.m2ts; do ffmpeg -i "$f" -vf scale=3840:-1 "${f%*.m2ts}.mkv"  ; done

単独

ffmpeg -i 2k.m2ts -vf scale=3840:-1 4k.mkv

※handbrake-cli 派はそちらでお願いします。当方では最近handbrakeもほとんど使いませんね。もともとffmpegの実験ニーズしかなかったので。

音声をAACにする場合のオプション指定(普通の方法)

libfdk-aacを使う生成が音質が担保できますので、既述の例をご覧ください。


少しだけオプションを書き足します。 WMV(などマイクロソフトのフォーマット)は個人的には世界から撲滅の方向で。AACが悪いわけではないですよ。標準的なフォーマットがやはりよいです。AACも標準ですが。だはは。
ffmpeg -i in.wmv -vcodec libx264 -acodec aac -strict -2 out.m4v

音声のみ、または、映像のみ抜き出す場合::たとえばyoutube

動画から音声だけを好きな形式で抜き出す。単車のエンジン音をこれで記録しています。たとえば、youtube-dl でローカルキャッシュ代わりにしてみた、動画ファイルから、音声のみ抜き出す場合には思い出してください。
最近では、VP9/opus がyoutube標準ですから opus で音声抜き出しすると無劣化です。最初から opusでダウンロードすることもできますが、本稿の範囲から外れるので書きません。

ffmpeg -i 動画 -map 0:1 out.opus
ffmpeg -i 動画 -map 0:1 out.ogg
ffmpeg -i 動画 -map 0:1 out.flac
ffmpeg -i 動画 -map 0:1 out.ac3
ffmpeg -i 動画 -map 0:1 out.mp3

いろいろ試してみてください。コンテナにどんな音声フォーマットで格納されているのかは、

mediainfoなどでも、
ffmpeg -i ファイル

とか……確認できます。 同等それ以下の音質にはなりますが、元以上の音にはなりません。当方のようにガソリンエンジン音を抜き出すみたいな用途は特殊かもしれない。

動画から映像だけを抜き出す。無劣化。無声映画・サイレント映画/トーキーみたい

ffmpeg -i 動画 -map 0:0 -vcodec copy videoonly.mp4

レースの撮影動画では、実況アナウンスやBGM(だいたいQUEENです。お約束)と排気音が入ります。
鈴鹿サーキットに限らずうるさい。^^; 無音声にして、BGMを別に載せてリビングのTVで観るのがいいかなと。

カンタンな動画の結合 :: ループファイルをつくってみたり(わりと楽しい)

ffmpeg -f concat -safe 0 -i list.txt -c copy loop.mkv

用意するファイル::ファイル名はもちろん自由です。
cat list.txt
#以下2つを結合する。同名ファイルでうまくなかったので、シンボリックリンクで別の名前をつけた。以下のa b は同じファイル。
file 'a.mkv'
file 'b.mkv'

リストを作るだけなので、とても楽。 数秒など短時間動画をすぱっとひとつのファイルに粗編集して様子をみるっていう場合なんかに便利かもしれません。

無声動画に音声(BGM)を加える。エンコーディングなしなので速い


ffmpeg -i 映像_videoonly.mkv -i audio.flac -c copy merged.mkv
https://superuser.com/questions/277642/how-to-merge-audio-and-video-file-in-ffmpeg

めんどくさいことはシェルにやらせよう。ざっくり一括変換(flac から ogg|mp3|m4a|opus)

たとえばこれらのコマンド行を1行づつファイルにして、スクリプトフォルダにおいておけば右クリックで一括変換です。
右クリックメニューの拡張 scripts nemo caja を参照してみてください。natilus でも同じことです。おすすめです。

シェルでカレント一括で処理したい場合はこんなかんじのワンライナーで。
アルバム単位ディレクトリに音楽ファイルが複数あった場合に、一括で変換するってことです。

第2案;; これのほうがエレガントですね。

FLACから各種フォーマットに変換
oggに
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}ogg" ; done
mp3に
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}mp3" ; done
m4aに
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}m4a" ; done
opusに
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}opus" ; done

HandBrakeCLI 加工例文集 コマンドラインで動画変換

ハンドブレーク:handbrake で小さな動画にしてみる


新規にターミナル(端末)CTRL+ALT+T
handbrake で幅640の小さなファイルにする。縦は無指定でも自動でアスペクト維持してくれる手抜きが許される。年齢によるが640は粗すぎる。qの数値で顕著な変化がありますので一回テストファイルで実感してみるといいです。おもしろいです。

HandBrakeCLI -e x264 --deinterlace fast -q 20 -w 640 -m -O -i in.file -o out.m4v

(ちょっと発展系) 実写フィルム系素材
HandBrakeCLI -e x264 --deinterlace fast --x264-tune film -q 20 -w 640 -m -O -i in.file -o out.m4v

FHD対応スマホでみるとしたら、960*540にしておくと画質とサイズバランスでいいかも。ストレージサイズを抑えるという意味で。

RF値による変化と効率

メモ RF値の関連 HandbrakeCLI

180秒 24.0MBのオリジナルテストファイルHEVC to x264


RF    時間  生成サイズ

10   4:55  115.0MB サイズがえらくでかくなった。
20    2:40    30.6MB 
25    2:15    19.2MB
30    2:49    12.9MB 許容(5インチ以下のスマホなら)
40    1:40      7.7MB うーん。
50    1:12      5.4MB    見るに耐えない。ありえない。表現としておもしろい。

だいぶ前にテストしたメモなのでごめんなさい。10-20の範囲を試してみるべきですね。18ぐらいでいいんじゃないかと思います。20がデフォルトのはずです。 処理時間からみれば、20-25ですかね。


あれ?! この位しか使ってなかった。というより、ffmpeg依存が強まっているようですね。
ffmpeg加工文例集は別稿に分けます。

動画変換、音声変換、コーデック、コンテナ変更 自由自在::切り貼りして即使えるffmpeg 加工例文集