[過去ログ] 音声可逆変換ソフト総合スレ (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
42
(1): 2008/10/02(木)21:44 ID:RKymDEoc0(2/2) AAS
>>38
もともとGUIツールは引数をflac.exeに渡す位と思っていたので、念のため〜やはり〜と書かせていただきました。
takやらWavPackやらLilithで変換ができるのに、
何故flac.exeだけ2GBまでしか処理できず落とされるのか見当もつきませんがとりあえず環境みてみます。

>>39-40
型によってひっかかるのではないかというのは解りましたが、ファイルサイズになんで符号付きのintなんでしょ?
wavは確かunsigned longで4GBまでいけるのに……。

自分の中では、変換自体はWinでもできたので>>37氏の言う通りなのかなぁとは思っております。
まぁ、うちの環境がおかしいだけなのかもしれませんが、
>>35氏のLilithの件以外では、できてる、とかできない等の話も訊かないので。
省11
43
(2): 2008/10/02(木)22:00 ID:CJRFS13e0(3/3) AAS
>>42
>ファイルサイズになんで符号付きのintなんでしょ
ファイルサイズというかoff_tはオフセットで相対位置を示す時にも使うから。
fsseko(fp,-1,SEEK_CUR)とかね

seektableの有無はmetaflac --list hoge.flacで確認可能。
44
(3): 2008/10/03(金)04:45 ID:5mcTPKC50(1) AAS
>>43
またまたこんな時間ですみません。

signed intの件、納得しました。
というかFILE_OFFSET_BITSやoff_tって書いいただいてるのだからオフセットと察しろって話ですよね。

Lilithで変換したファイルをmetaflac --listで調べてみたところ、
〜前略〜
point 736: sample_number=707171328, stream_offset=2841139388, frame_samples=4608
point 737: sample_number=708129792, stream_offset=2844727800, frame_samples=4608
と、問題はなさそうです。
ちなみにfoo_flaccer.dllで変換したファイルはエラーとなりwikiのとおりseektableは存在してませんでした。
省4
45
(3): 35 2008/10/03(金)23:23 ID:Gk/CpB0M0(1) AAS
>>44
Lilith は、もしかしてオンラインアップデートしていないバージョンを使ってる?
0.992 にアップデートすると、FLAC 1.2.1 が使われてる。
これ最新のFLACのライブラリのはずだよね。

ところで、以前の flac.exe (公式のコマンドラインプログラム)では、
余計な SeekTable を作成するという不具合があったけど、
今のは直ってるのかしら?
たしか、曲長にかかわらず、100個だか1000個だか作成しちゃうっての。
短い曲のときは無駄だし、長い曲のときは数足りず、で
まともに機能しないケースが存在すると指摘されてたような。
省8
46: 2008/10/03(金)23:24 ID:B97GWqQQ0(1) AAS
flac tgfでデフォルトの圧縮率や保存先が設定できず、いちいち設定->バッチ
とやるのが苦痛なのですが、もっとマシなフロントエンドはないですか?
47
(5): 2008/10/03(金)23:53 ID:zbHi8B7I0(1) AAS
>>45
fseekで2GB以上のファイルを扱うのはLP64とかILP64な処理系じゃないと無理でしょ。
fseekoみたいにoff_tじゃなくてlongだから。

>余計な SeekTable を作成するという不具合
それってfoobar2000のpipe encoderがwavのヘッダに
適当なdataチャンクの大きさを書くのが原因のやつじゃないの?
1.2.0で--ignore-chunk-sizesが追加されてるけど、
これを付けるとそもそもseektableが作られなくなる。
48
(2): 35 2008/10/04(土)01:31 ID:FD/w9THf0(1) AAS
>>47
いえ、flac.exe 本体のバグ(?) です。
かなり昔の話だけど、確か Lilith の HP で見た気がしたので、
作者の書き込みかと思ってたら、ユーザの人の書き込みだったみたい。

外部リンク[cgi]:www.project9k.jp
2ch からは直リンできないんだったかな?
みれなかったらURLコピペでよろすく
49
(3): 2008/10/04(土)01:55 ID:L6+WXtUj0(1/3) AAS
>>48
いや、それだとどうやってflac.exeを使ったかが分からないから
wavヘッダのサンプル数が間違っている可能性は捨てきれないと思うけど。
サンプル数を越えたところにまで空のseekpointを作成というのは
まさにその問題の典型だし。
50
(2): 2008/10/04(土)12:09 ID:M36DJN+M0(1/3) AAS
>>45,47-49
LilithのVerの件ですが、ご指摘のとおり0.9.9.2にアップデートでlibFLAC 1.2.1になりました。
度々ホントありがとうございます。
一度オンラインアップデートしたんだけどなぁw

SeekTableの件につきましては、
foobarというかPIPE処理等で事前にサンプル数が取得できない際におこるようです。
Seek Point計算はサンプル数が必須で、
例えば録音しながらPIPEで変換等は問題がでそうと考えます(サンプル数渡してもダミーだろぉし)
外部リンク[cgi]:www.project9k.jp
その後の1217で投稿した方もエンコード方法を認めております。
省16
51
(4): 2008/10/04(土)13:56 ID:YQPA4Ds60(1) AAS
>>50
レポート乙
52
(3): 2008/10/04(土)14:48 ID:L6+WXtUj0(2/3) AAS
>>50
>素人考えですがflacはSeek Tableの構造上PIPEエンコードにはむかない
FLACはseektable無しでもシーク可能。seektableはシークを高速にするためにある。

>Lilithだと-b 4608としているようで、frame_samples=4608となりました
4096じゃないのはlilithがFLAC__stream_encoder_set_compression_levelを使ってないのが原因だな。

>デフォルトだと0で当然METADATA blockにPADDINGはありませんでした
今のFLACのフロントエンドはデフォルトで8192bytesのpaddingを付加するよ。
53
(1): 2008/10/04(土)18:23 ID:M36DJN+M0(2/3) AAS
>>51
や、いつも長ったらしくてホントゴメンよぉ……、今回も長いけどw

>>52
>FLACはseektable無しでもシーク可能。seektableはシークを高速にするためにある。
PIPEでファイル作成できない、もしくは他のエンコーダに劣るという訳ではなく、
PIPEによってFLACの特徴を一つ失うとなるならば、むいてるとは言えないのかなと。
PIPEを使わずにSeekTableありで変換できるのならばそちらを選ぶでしょうし。

>FLAC__stream_encoder_set_compression_levelを使ってないのが原因
frame samplesの違いは試してた際に特に気になっておりました。ありがとうございます。

>今のFLACのフロントエンドはデフォルトで8192bytesのpaddingを付加するよ。
省3
54
(2): 2008/10/04(土)18:58 ID:M36DJN+M0(3/3) AAS
あー、わざとfoobarで--ignore-chunk-sizes外した結果を書いてなかったです。
ソースwavファイル詳細:24bit 96kHz 2ch 9:11 (551sec) 302 MB (317,494,364 バイト)

flac.exe 1.2.1bでコマンドラインにてエンコード 184 MB (193,579,813 バイト)
〜前略〜
point 54: sample_number=51838976, stream_offset=189826283, frame_samples=4096
point 55: sample_number=52797440, stream_offset=193141717, frame_samples=4096

flac.exe 1.2.1bにてfoobarで--ignore-chunk-sizesあり 184 MB (193,578,801 バイト)
type: 3 (SEEKTABLE)は無しで後はコマンドラインと同じ。

flac.exe 1.2.1bにてfoobarで--ignore-chunk-sizesなし 18.3 MB (19,232,591 バイト)
〜前略〜
省11
55
(4): 2008/10/04(土)19:47 ID:L6+WXtUj0(3/3) AAS
>>53
別にパイプだと必ずダメと言う訳じゃないよ。
普通にシェルからcat hoge.wav | flac - -o hoge.flacとかやる分には何の問題もない訳で。
サンプル数が既知なのに、わざわざパイプで渡す時に
チャンクサイズを不定にして渡すから問題になる。
だから47ではflacではなくfoobar側の問題という書き方をした訳だが。

スレ違いだがLAME 3.98のTLENタグなんかでも同じ問題が起こるはず。
56
(2): 2008/10/05(日)06:00 ID:aBfFvcZR0(1) AAS
>>55
こんな時間ですみません。

>別にパイプだと必ずダメと言う訳じゃないよ。
ソレは実は解ってはいたんですが、変換元がwavファイルから渡すと確定していたり、
サンプル数が確定している場合がPIPE処理を使う前提の場合だと少ないのかなぁと思った訳です。

変換時に一時ファイルを作成したり、サンプル数が確定しているwavからの入力しかないと解るならば、
PIPE処理の必要性はあまりない気もしたので。

>LAME 3.98のTLENタグ
どぉやら似たよぉな感ぢですね、ちと色々みてみます。

ホントにご丁寧にありがとうございます。
57
(1): 2008/10/05(日)16:25 ID:dwFW1c500(1) AAS
PCDJとバックアップの為に音源をアナログからPCに取り込もうと思ってここ来たが、
PCDJ用途と考えると展開速度が速いFLACが良いのかな
勉強になる
58
(2): 2008/10/05(日)16:37 ID:IWv8Vcfq0(1) AAS
まあ、PIPE入力だと元がファイルではなくて終わりが決まっていないストリームの場合もあるから
エンコーダ側ではサンプル数を当てにした処理は避けうるなら避けたほうがいいのかも。
その辺はフォーマットのファイル設計なんかも関わってくるよね。
59
(4): 2008/10/05(日)17:30 ID:Tg7yoQeF0(1) AAS
FLACの場合はメタデータブロックがファイルの先頭(圧縮データより前)にあるから、
seektableを作る場合、圧縮前にあらかじめseekpointの数だけ領域を確保する。
この操作のためにサンプル数が事前に必要。
ちなみに何サンプル目にseekpointを置くかを決めればいいだけなので、
サンプル数はおおよそでOKで正確である必要はない。

エンコード後に実際のサンプル数を使ってseektableを更新できるのが理想だけど、
確保した領域の分よりも多くのseekpointが必要な場合、
メタデータブロック後の巨大な圧縮データを再配置する必要がある。
ただ、padding領域を使えばある程度までならメタデータブロックのみの再配置で済むから
この程度の実装なら将来のFLACでやるかもしれない。
省1
60
(3): 2008/10/06(月)00:21 ID:+Ew7Qu3h0(1/2) AAS
ごめんマニアックだけど
普通のWAV(CD音質=44100Hz)以外のWAVでも対応してるのってありますか
DTMしてるんで24Bit/48kHzで保存してたりするもんで。
61
(4): 2008/10/06(月)00:31 ID:lIkuJkQR0(1) AAS
>>60
FLAC, WavPack, etc
外部リンク:en.wikipedia.org
1-
あと 941 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s