-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkpiffmpeg.txt
144 lines (101 loc) · 4.15 KB
/
kpiffmpeg.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
kpiffmpeg
=========
音楽ファイルのデコードを FFmpeg (https://www.ffmpeg.org/) に丸投げする
KbMedia Player プラグインです。対応する拡張子は FFmpeg がサポートするも
のであれば何でも設定することができます。
用意するもの
------------
最低限 ffmpeg.exe が必要です。ライセンス及び特許の関係から、本プラグイン
には同梱していませんので、あらかじめ入手しておいてください。FFmpeg 公式
サイトから入手できますし、誰かがビルドしたバイナリでも、ご自分でビルドさ
れたものでも構いません。32/64bit 版どちらでも(動きさえすれば)構いませ
ん。
タグ情報や曲の長さを取得するには ffprobe.exe が追加で必要です。
これらを kpiffmpeg.kpi と同じディレクトリか、PATH の通ったディレクトリに
おいてください。
次に kpiffmpeg.ini というファイルを kpiffmpeg.kpi と同じディレクトリに作
り、以下のように書いてください。
--------
[kpiffmpeg]
exts=...
--------
exts= の値は、プラグインに再生させるファイル拡張子のリストです。ドットを
省き、/ で区切ります。たとえば .dsf, .dff, .m4a ファイルを再生させるには
次のように書きます。
--------
[kpiffmpeg]
exts=dsf/dff/m4a
--------
これで KbMedia Player を起動すれば、dsf, dff, m4a ファイルを再生できるよ
うになっているはずです。
ini ファイル
------------
kpiffmpeg.ini ファイルには以下の設定を書くことができます。
--------
[kpiffmpeg]
; 対応させたいファイルの拡張子の . を省いて / で区切って列挙する。
; 変更は次回プラグインを読み込んだ時に反映される。
exts=foo/bar/baz/quux
; シークの精度と速度のバランスを設定する。設定できる値は 1 か 0
; 1 のとき:シーク位置までダミーのデコードを繰り返す。正確だが遅い。
; 0 のとき:入力ファイルを読み飛ばすことでシークしようとする。高速だが粗い。
; デフォルトは 0 で、変更はファイルを開きなおすと反映される。
SeekPrecision=1/0
; タグ情報を取得したくないファイルの拡張子を、exts= と同じ形式で列挙する。
; ここに書かれた拡張子のファイルはタグ情報取得を行わない。
; ffprobe によるタグ情報の取得は遅いので、Media エクスプローラなどでの操
; 作に支障をきたすようなときに設定する。
; DisableTags=* とだけ指定すると、すべてのファイルのタグ取得を行わなくなる。
; デフォルトは空で、変更は次回プラグインを読み込んだときに反映される。
DisableTags=ext/ext/ext
; ffmpeg.exe へのフルパスを指定する。
; kpiffmpeg.kpi と同じディレクトリに ffmpeg.exe を置いた場合は常にそちらが
; 優先され、この値は使われない。
; デフォルトは ffmpeg.exe(PATHが通っていることを期待する)で、変更は
; ファイルを開きなおすと反映される。
ffmpeg=c:\path\to\ffmpeg.exe
; ffprobe.exe へのフルパスを指定する。
; kpiffmpeg.kpi と同じディレクトリに ffprobe.exe を置いた場合は常にそちらが
; 優先され、この値は使われない。
; デフォルトは ffprobe.exe(PATHが通っていることを期待する)で、変更は
; 次回タグ情報を取得する際に反映される。
ffprobe=c:\path\to\ffprobe.exe
--------
コマンドライン
--------------
kpiffmpeg.kpi は以下のコマンドで ffmpeg.exe を起動し、標準出力から得られ
た PCM をパイプで読み取って KbMedia Player へ返します。
SeekPrecision=1 のとき:
ffmpeg -hide_banner -y -v -8 -i FILENAME -ss POS -vn -f FORMAT -ac CHANNELS -ar SAMPLERATE -acodec CODEC -
SeekPrecision=0 のとき:
ffmpeg -hide_banner -y -v -8 -ss POS -i FILENAME -vn -f FORMAT -ac CHANNELS -ar SAMPLERATE -acodec CODEC -
FORMAT, CODEC はそれぞれ、SOUNDINFO::dwBitsPerSample が、
0 のとき:FORMAT="s16le", CODEC="pcm_s16le"
8 のとき:FORMAT="s8", CODEC="pcm_s8"
16 のとき:FORMAT="s16le", CODEC="pcm_s16le"
24 のとき:FORMAT="s24le", CODEC="pcm_s24le"
32 のとき:FORMAT="s32le", CODEC="pcm_s32le"
-32 のとき:FORMAT="f32le", CODEC="pcm_f32le"
-64 のとき:FORMAT="f64le", CODEC="pcm_f64le"
ffprobe.exe のコマンドラインは以下の通りです。このコマンドの標準出力から
得られた内容をパイプで読み取って KbMeid Player へ返します。
ffprobe -hide_banner -v -8 -show_format -show_streams -of flat FILENAME
ライセンス
----------
kpiffmpeg.kpi -- FFmpeg adapter plugin for KbMedia Player
Copyright(c) 2015, Autch.net
kpiffmpeg.kpi は MIT ライセンスで配布されます。LICENSE.txt ファイルをご
覧ください。
ソースコード
------------
ソースコードは以下の GitHub リポジトリから入手できます。
https://github.com/autch/kpiffmpeg
Visual Studio 2015 Comminuty でビルドしています。
更新履歴
--------
v1.0.0 (65536) 2015.09.06
* 初版。DSD の PCM 変換再生と ALAC を再生したくて作った。
----
Autch
http://www.autch.net/
https://github.com/autch