コメントの投稿
No title
ようやくひと段落というか追いつけました。
自分の008の機能盛りVerはqpfile開きっぱなしだし誤字ありだし、009での提案は0で割る可能性ありのままだったし…お手数をおかけしましたorz
(ちなみに&8は0,1,2,3,4,5,6,7,16,17,18,...でした。個人的にはビット演算の勉強になりました。)
で、あと考えていたのが(Yan氏版では問題なしの)出力ファイル名ダメ文字問題なのですがアイデアだけ。
mp4boxやtc2mp4Modでmuxするときのファイル名はexample-hoge.mp4なりダメ文字を含まない適当なファイル名に置き換えておいて、
muxが終わったらそのファイルをoip->savefileなファイル名に置き換えるというのはどうでしょうか。
自分の008の機能盛りVerはqpfile開きっぱなしだし誤字ありだし、009での提案は0で割る可能性ありのままだったし…お手数をおかけしましたorz
(ちなみに&8は0,1,2,3,4,5,6,7,16,17,18,...でした。個人的にはビット演算の勉強になりました。)
で、あと考えていたのが(Yan氏版では問題なしの)出力ファイル名ダメ文字問題なのですがアイデアだけ。
mp4boxやtc2mp4Modでmuxするときのファイル名はexample-hoge.mp4なりダメ文字を含まない適当なファイル名に置き換えておいて、
muxが終わったらそのファイルをoip->savefileなファイル名に置き換えるというのはどうでしょうか。
Re: No title
>ビット演算
&0, &1, &3, &7, &15, &31のどれかでやるようにしようかとも思ったんですが(そうすれば等間隔になる)、書いてみるとどう考えても読みにくいコードになるので、多少遅くても余りのほうがわかりやすくていいかな、と思って余りにしました。ビット演算は難しいですね。
>ファイル名置き換え
個人的に、よくわからんファイル名が(一時的にでも)勝手に登場するってのが好きじゃないんですよ…なのでやってないんです。解決策としてはそれしかないとは思うのですが。
&0, &1, &3, &7, &15, &31のどれかでやるようにしようかとも思ったんですが(そうすれば等間隔になる)、書いてみるとどう考えても読みにくいコードになるので、多少遅くても余りのほうがわかりやすくていいかな、と思って余りにしました。ビット演算は難しいですね。
>ファイル名置き換え
個人的に、よくわからんファイル名が(一時的にでも)勝手に登場するってのが好きじゃないんですよ…なのでやってないんです。解決策としてはそれしかないとは思うのですが。
No title
ファイル名のアイデアですけど、元はx264outのmuxのやり方(以下抜粋)
# %5 pid プロセスID
set PID=%5
set TMPF=tmp%5__
:mp4
mp4box -add "%TMPF%.m4a" "%TMPF%.mp4"
if exist "%CHAP%" mp4box -chap "%CHAP%" -lang jpn "%TMPF%.mp4"
if exist "%CHAP%" del "%CHAP%"
move /y "%TMPF%.mp4" "%OUT%.mp4"
del "%TMPF%.m4a"
exit
なら、ほんの少しの変更だけでスマートな回避ができるかなぁと思っての発言だったのですが、
丸投げよくないと思って自分でやってみようとしたところ、mux前からかなりの部分でoip->savefileを使っていて大改修になっちゃいそうだったので、提案は一旦取り下げということでお願いします。
x264guiでもダメ文字でmp4box使用時はNGですね。
なんといいますか、2passのログ(x264.statsやx264.stats.mbtree)はx264.exeのあるフォルダに生成されますよね。
同様に、そのx264.exeのあるフォルダに、最終出力以外の(一時)ファイル全部(強いて言えばqpfileやtimecodeなども?)を生成して、
最終出力ファイルだけを出力指定フォルダに指定ファイル名で生成すれば、
それらの一時ファイルをいらない(または謎のファイルが出てくるのはまずい)と思う方にも問題ないのではないか?なども思ったりはしました。(そういう出力をしてるx264プラグインあったような・・・?)
そういう構想だけなら簡単にできるんですけど、プログラミング力が追いついておりません。
いつか自分でやってみたいなとは思っております…。
!
MP4boxのダメ文字が無くなればいいですね!(ぇ
>>ビット演算
>&0, &1, &3, &7, &15, &31のどれかでやる
>書いてみるとどう考えても読みにくいコードになる
& 2 ^ ( (oip->n / 100)を 0 になるまで÷2(ビット右シフト?)した回数 ) - 1
で合ってるだろうか不安、というかこの演算に時間がかかって余り演算より遅くなる悪寒ががががが
>等間隔
> int info_interval = MIN(oip->n / 100, 15) + 1; //更新間隔の調整
+1したことで0割りは回避しているものの微妙な間隔になっているのが少し気になってしまっております。
x264のcommon.hにあった
static inline int x264_clip3( int v, int i_min, int i_max )
{
return ( (v < i_min) ? i_min : (v > i_max) ? i_max : v );
}
を改変して(intじゃなくてもいいように?)、
> int info_interval = clip3(oip->n / 100, 1, 16) 1; //更新間隔の調整
みたいな形にしたら綺麗になるかなぁなどと思ったりしました。
ただこれだけの為に0.11なんてしないでください。
駄文長文失礼しました。取り込みどうもありがとうございます。
# %5 pid プロセスID
set PID=%5
set TMPF=tmp%5__
:mp4
mp4box -add "%TMPF%.m4a" "%TMPF%.mp4"
if exist "%CHAP%" mp4box -chap "%CHAP%" -lang jpn "%TMPF%.mp4"
if exist "%CHAP%" del "%CHAP%"
move /y "%TMPF%.mp4" "%OUT%.mp4"
del "%TMPF%.m4a"
exit
なら、ほんの少しの変更だけでスマートな回避ができるかなぁと思っての発言だったのですが、
丸投げよくないと思って自分でやってみようとしたところ、mux前からかなりの部分でoip->savefileを使っていて大改修になっちゃいそうだったので、提案は一旦取り下げということでお願いします。
x264guiでもダメ文字でmp4box使用時はNGですね。
なんといいますか、2passのログ(x264.statsやx264.stats.mbtree)はx264.exeのあるフォルダに生成されますよね。
同様に、そのx264.exeのあるフォルダに、最終出力以外の(一時)ファイル全部(強いて言えばqpfileやtimecodeなども?)を生成して、
最終出力ファイルだけを出力指定フォルダに指定ファイル名で生成すれば、
それらの一時ファイルをいらない(または謎のファイルが出てくるのはまずい)と思う方にも問題ないのではないか?なども思ったりはしました。(そういう出力をしてるx264プラグインあったような・・・?)
そういう構想だけなら簡単にできるんですけど、プログラミング力が追いついておりません。
いつか自分でやってみたいなとは思っております…。
!
MP4boxのダメ文字が無くなればいいですね!(ぇ
>>ビット演算
>&0, &1, &3, &7, &15, &31のどれかでやる
>書いてみるとどう考えても読みにくいコードになる
& 2 ^ ( (oip->n / 100)を 0 になるまで÷2(ビット右シフト?)した回数 ) - 1
で合ってるだろうか不安、というかこの演算に時間がかかって余り演算より遅くなる悪寒ががががが
>等間隔
> int info_interval = MIN(oip->n / 100, 15) + 1; //更新間隔の調整
+1したことで0割りは回避しているものの微妙な間隔になっているのが少し気になってしまっております。
x264のcommon.hにあった
static inline int x264_clip3( int v, int i_min, int i_max )
{
return ( (v < i_min) ? i_min : (v > i_max) ? i_max : v );
}
を改変して(intじゃなくてもいいように?)、
> int info_interval = clip3(oip->n / 100, 1, 16) 1; //更新間隔の調整
みたいな形にしたら綺麗になるかなぁなどと思ったりしました。
ただこれだけの為に0.11なんてしないでください。
駄文長文失礼しました。取り込みどうもありがとうございます。
Re: No title
>MP4boxのダメ文字が無くなればいいですね!
まったくです!
なんで""でくくってもだめなんでしょうね…
>& 2 ^ ( (oip->n / 100)を 0 になるまで÷2(ビット右シフト?)した回数 ) - 1
info_interval = oip->n / 100;
int i;
for (i = 0; i < 5; i++)
if ((info_interval>>i) == 0)
break;
info_interval = 1<<i - 1;
それで
if ((i_frame & info_interval) == 0)
//表示
ですね。たぶん。これで高速化できます。
>等間隔
うーん、気になりますか。
clip3のほうがきれいなので、次はそうします。
>0.11
もうやることあんまりないです。いや、ないほうがいいですけどね、バグが少ないってことで。一時ファイルについては、せっかく構想していただいたのですが、「そこまでせんでも…」という思いが先に立ちまして…すみません。
まったくです!
なんで""でくくってもだめなんでしょうね…
>& 2 ^ ( (oip->n / 100)を 0 になるまで÷2(ビット右シフト?)した回数 ) - 1
info_interval = oip->n / 100;
int i;
for (i = 0; i < 5; i++)
if ((info_interval>>i) == 0)
break;
info_interval = 1<<i - 1;
それで
if ((i_frame & info_interval) == 0)
//表示
ですね。たぶん。これで高速化できます。
>等間隔
うーん、気になりますか。
clip3のほうがきれいなので、次はそうします。
>0.11
もうやることあんまりないです。いや、ないほうがいいですけどね、バグが少ないってことで。一時ファイルについては、せっかく構想していただいたのですが、「そこまでせんでも…」という思いが先に立ちまして…すみません。