2019年9月15日 (日)

libiconv-1.16

iconvを新しい1.16に入れ直しました。 相関関係の解決のためにgettextも再buildです。

macOSに標準装備のiconvは、1.11ベースに「UTF-8-MAC」を追加したもので、ちょっと古いのですね。
GNUの最新1.16は、「UTF-8-MAC」のエンコード/デコードに対応してません。
APFSはすでにUTF-8なので、徐々に必要なくなっていくのは確かなのですが。

 

じゃ、libiconv-1.16 をUTF-8-MAC対応にpatchあててしまおうか?って思い立ちました。
・/lib/utf8mac.h  追加
・/lib/converters.h  に #include "utf8mac.h"  行追加
・/lib/aliases.gperf  に UTF-8-MAC, ei_utf8mac  行追加
・/lib/flags.h に #define ei_utf8mac_oflags (HAVE_...行追加
・/lib/encodings.def  に DEFENCODING(( "UTF-8-MAC", ...5行追加
・/lib/aliases.h  の #define TOTAL_KEYWORDS 350 ←349から変更
      char stringpool_str390[sizeof("UTF-8-MAC")];行追加
  "UTF-8-MAC", 追加
  {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str390, ei_utf8mac}, 追加

と、ここまでは普通に考えられる。問題は aliases_hash 関数内でのhash検索だ。
"JIS_X0212.1990-0"  と "UTF-8-MAC" が同じ697になってダブってしまう。
なので、len==9の場合には"UTF-8-MAC" で、390をreturnするように分岐を加えた。

Aliasesh

まぁ本当は各chrの重みつけを変更してダブらないようにするのが理想なんだけどね。
これで、libiconv-1.16 にUTF-8-MACを追加できました。
(一応忘備録)

| | コメント (0)

2019年8月17日 (土)

pango-1.44.5を入れる

今日はmacOSに、pango-1.44.5 を入れました。

お、cmakeも新しいのが出てるな。先に入れておきましょう。

pangoは、

$ cd pango-1.44.5
$ meson build/
$ ninja -C build
$ ninja -C build install

で入ります。 ん? errorで止まった・・・ harfbuzzが必要らしい。

 

$ cd harfbuzz
$ ./autogen.sh
$ ./configure --with-coretext=yes
$ make
$ sudo make install

macOSの場合は、Platform shapers (not normally needed):のところを

CoreText:true   にしないと、pangoではダメなんですね。

Harfbuzz

ふむふむ。

| | コメント (0)

2019年8月10日 (土)

ffmpeg4.2

ffmpeg4.2  ”Ada" が出ていますね。 早速Macでbuildしました。

 

AOMのAV1も、もう1度、最新を入れときましょう。(要cmake)

$ cd aom_build  (この中にaomフォルダを入れておく)

$ cmake ./aom

$ make & sudo make install

 

ffmpeg 4.2 では、 ./configure に --enable-libaom を追加します。

Ffmpeg42

AV1 か、HEVC か・・・ それが問題だ。(^^;

| | コメント (0)

2019年7月 7日 (日)

hev1 to hvc1

最近、H.264から徐々にH.265に動画が変わりつつある。iPhoneがH.265に全面的に移行完了したし、macOSもHighSierra以降はH.265なのだ。

 

とはいえ、まだH.264のみサポートの機器も残ってます。AppleTV(第2世代)なんですね。

まぁ、AppleTVはいずれ買い換えるのだとしても、H.265の動画は増えていくわけです。(笑)

 

そこでちょこっと問題になるのが、同じH.265でもhev1とhvc1という2つの形式があるということなんですね。

これはCodecID(FourCC)という部分なのですが、mp4コンテナのStream中で参照するCodePointが違うらしい。(難しい:わからん)

 

で、iPhoneやmacOSでサポートされているのはhvc1「だけ」なのだ。 なので、hev1の動画はhvc1に変換したいわけですよ。

MP4Boxで音声と映像を抜き出して再合成する方法もある。でもこれ、chapterで飛んだところで映像が破綻する。

 

そこで、最新のffmpegでやってみた。

$ ffmpeg -threads 0 -y -i "$f" -c:v copy -tag:v hvc1 -c:a copy "${f/mp4/a.mp4}"

って具合だ。

これだと、ちゃんとQuickTimePlayerでも再生できて、chapterもOKなhvc1のmp4になる。

もちろん、元fileがmkvでもOKだ。

 

さーて、、4K-TVも持ってないし、Macもmid2009の10年選手だけど、AppleTV 4Kは先に欲しいかもしれません。

AV1の話も気になるけど、ハードウェアデコーダ/エンコーダの普及まで待てないよなあ。

| | コメント (0)

2019年5月12日 (日)

ffmpegで動画編集

今日はmp4で録画した、3週間分の番組を1本にする編集作業を行いました。

 

使った編集ソフトは、動画の切り出し、連結にffmpeg、チャプタ操作にmp4chaps、サムネイル画像の追加にmp4art、です。

 

まず、動画の切り出し。 CMや、エンディングをカットして本編だけを抜き出します。

$ ffmpeg -threads 0 -y -i "b.mp4" -ss 00:01:34 -t 00:26:00 -c:v copy -c:a copy -async 1 b1.mp4

連結には、

$ ffmpeg -threads 0 -y -f concat -i "files.txt" -c:v copy -c:a copy -map 0:v -map 0:a abc.mp4

 

チャプタFile追加に

$ mp4chaps -i abc.mp4

 

サムネイルjpgやpng追加、

$ mp4art --add "abc.jpg" abc.mp4

 

で、iTunesに登録します。これでMac/iPhone/AppleTVで動画を楽しめます。

ビジュアル的な編集ソフトって、最近私はまったく使わなくなりました。

| | コメント (0)

2019年5月 4日 (土)

deamon常時起動

macOSには、httpd(webサーバ)が標準で入ってます。apache2.4系です。これを起動して使うには、terminalから、

$ sudo apachectl start
$ sudo apachectl stop

とやればいい。 でも、、再起動する度にやるのはめんどいし。deamonとして常時起動しておきたいワケ。

macOSの場合は、個別のxml(*.plist)でサービス内容を記述し、それをlaunchdが処理する形をとります。
/System/Library/LaunchDaemons や、~/Library/LaunchDaemons に登録し、それらのサービスはlaunchctl で管理します。

ちなみに、RedHat7/CentOS7系は、systemdがサービスを処理する形式で、
/etc/systemd/system/ に、*.service で記述された起動項目を登録し、systemctlで管理する。

 

xmlで書くか、独自tagで書くかの違いはあるが、考えは同じだ。
昔のinit.dとかに起動スクリプトを延々と書く方式だと、シーケンシャルにdeamonの起動が行われて、その都度waitとか入れられたのではたまったものではない。個々のdeamonの管理もsystemで行いたい。

 

そういう要求から生まれたのが、macOSのlaunchctl や 最近のGNU/Linuxのsystemctlなのだと思う。

では、webサーバ、Apacheをdeamon起動するよう、macOSをセットしてみましょう。
kameya.apache.plist を以下のように作り、Library/LaunchDaemons/下に入れてrootにchownしておきます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>kameya.apache</string>
<key>RunAtLoad</key>
<true/>
    <key>KeepAlive</key>
    <false/>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/httpd</string>
<string>-k</string>
<string>start</string>
</array>
</dict>
</plist>

再起動して見ましょう。

Httpd

 

はい、ちゃんとdeamonで起動してますよ。launchctlではコントロールできないので、この後は今まで通り、

$ sudo apachectl start
$ sudo apachectl stop

を使うことになります。ふむ。 まずはdeamon制御ができました。

| | コメント (0)

2019年4月27日 (土)

glib-2.61.0 を入れる

今日は、macOS、HighSierraに、いろいろなupdateをあてました。

cmake-3.14.3
opus-1.3.1
pcre2-10.33
glib-2.61.0

つまづいたのがglibを入れようとしたところ。Meson build systemを入れないといけない。これ、Python3で書かれたconfigure環境なのだそうだ。 つまり、Python3(mac標準はPython2.7)も入れないといけない。 そして、buildシステムにはninjaも入れないと。

Python3は前に入れてあった。 meson-0.50.1 を入れます。

python3 setup.py install

 

ninja-1.9.0を入れましょう。

./configure.py --bootstrap
$ sudo install -vm755 ninja /usr/local/bin

 

で、やっと、glib-2.61.0を作成できます。

$ meson _build
$ sudo ninja -C _build install

※ iconvがOS標準でないとbuildできません。/usr/local/lib/iconv.h を一時無効にして対応しました。

unix的にmacOSを使うのも、慣れてきました。(笑)

| | コメント (0)

2019年4月16日 (火)

ghostscript9.27

ghostscriptが、9.27にupしておりました。 HighSierraでbuildしました。

 

これに先立って、iconvを「libiconv-51.200.6」にしました。これはAppleがカスタマイズしたiconvで、UTF-8-MACが組み込まれてます。

 

freetype、libSDL2あたりも再Buildしておかないと・・・(他にもあるかも?)

あとはCIDフォント入れて、driverはall、initは都度読み込み。

 

Gs927

 

golfer、tiger、all-aj1.ps がちゃんと表示できますよ。

 

Gs927b

はい、これで最新のgs環境ですね。

 

| | コメント (0)

2019年3月31日 (日)

pcreを入れ直す

今日は、

cmake-3.14.1

freetype-2.10.0

glib-2.59.0

を新しいversionに入れ直しました。 glibを ./autogen.sh したら、pcreがUTF-8使えないよ! って怒られた。なので、pcreも入れ直し。pcre2ももちろん入ってるんですけどね。

 

# ./configure --enable-utf --enable-pcre16 --enable-pcre32 --enable-pcregrep-libz --enable-pcregrep-libbz2 --enable-pcretest-libreadline --enable-unicode-properties

# make

# sudo make install

 

あとは普通に入りました。

 

| | コメント (0)

2019年3月24日 (日)

LinuxMint(xfce)

USBの外付けHDDにLinuxMintのxfce(64)を入れてみました。前にCinammonは入れてみたことがあるのですけどね。
2GBのSDカードからインストールしたら、有線Ethernetでupdateを実行。
Mint1
ここでWiFiのドライバをインストールします。以後はWiFiが使えますからね。
Mint3
ここまでくると、普通に使えるようになります。HFS+はReadのみでマウントされます。APFSは見えませんけど。(笑)
最近会社でCentOS7を使うのですが、Centもなかなかいい。 うーん。GNU/LinuxのOSは「自由すぎる」ことが逆に統一感がないという欠点になってますよね。 まぁ、自然に淘汰されて優れたものが主流になっていくんでしょうけど。

| | コメント (0)

より以前の記事一覧