ログウィンドウの件について報告したものです。
2.33にてx264ログウィンドウが裏に回らなくなったのを確認しました。
対応ありがとうございました。
はじめまして。
いつもお世話になってます。
Win7 環境で使用してるんですが、最近最新版を導入したあたりから、エンコした動画を Flash Player で再生したときに全てダウンロード後でないと再生されなくなってしまったんですが、これは初期設定ファイルを少し書き換えれば修正できるんでしょうか?
前に META ファイルを頭につけないとこういうことになるようなことを聞いた覚えがあるのですが。
だとしても私はやり方が分からないのですが^^;
調べればわかるのかもしれませんが、修正しておいた方が良さそうな気がするので投稿してみました。
ちなみにインタレ解除を「自動フィールドシフト」でやるとこの症状は出ません。
他のインタレ解除を指定すると症状が出ます。
よろしくお願いします。
報告ありがとうございます。
こちらで簡易インストーラを使って最新の環境(x264guiEx 2.33 + x264 r2579 + L-SMASH r1362)を構築し、ニコ動に投稿して試してみました。ただ、全部ダウンロードする前から再生は始められているような気がしています。キャッシュされたのかどうかの確認がちょっと難しいですが…
対応ありがとうございます。
こちらでも YouTube にアップロードして試したところ、普通に再生されました。
ということはおそらくサイト側の問題のようです。
サイトの FlashPlayer が更新されてないようなので、そのせいかもしれません。
どうもお騒がせしました。
暇つぶしにソースコードをCppcheckにかけたり、run_bat_file関数をstd::stringを使って書き換えたりして遊んでいたら、バグっぽいものを見つけたので報告します。多分実害はないと思いますが一応。
version:x264guiEx_2.33
auo_util.h
line:291
static inline BOOL str_has_char(const WCHAR *str) {
BOOL ret = FALSE;
for (; !ret && *str != L'\0'; str++)
ret = (*str != ' ');
return ret;
}
>*str != ' '
これは型が違うと思います。この関数自体どこでも呼ばれてないみたいですが。
auo_runbat.cpp
line:72
>if (NULL == (line_buf = (char *)realloc(line_buf, buf_len * sizeof(line_buf[0])))) {
これはreallocが失敗した際にline_bufがもともと指していた領域が開放されないのでまずいかと。
auo_conf.cpp
line:130
BYTE *dat = (BYTE*)calloc(conf_size, 1);
//略
//ブロックサイズチェック
if (((CONF_GUIEX *)dat)->block_count > CONF_BLOCK_COUNT)
return CONF_ERROR_BLOCK_SIZE;
//初期化するかどうかで使うので。
conf->size_all = CONF_INITIALIZED;
free(dat);
return 0;
>if (((CONF_GUIEX *)dat)->block_count > CONF_BLOCK_COUNT)
> return CONF_ERROR_BLOCK_SIZE;
これだとdstは開放されない
x264guiEx.cpp
line:259
>va_start(args, format);
この後va_endされていない
x264guiEx.cpp
line:270
>va_start(args, format);
この後va_endされていない
Cppcheckって便利ですね。簡単にVisual Studioに導入できますし。
しかしなんでrun_bat_file関数をstd::stringつかって書き換えようと思ったんだ、過去の私、お陰で半日潰れた・・・
https://gist.github.com/yumetodo/cc48d6543d9320a9fe6c
お陰でstd::stringのいい練習になりました、しばらく見たくないくらい。
まあこのあたりは探せばお恥ずかしながらいろいろ見つかるとは思います。
Visual Studioのデフォルトでもコード解析みたいなのがありますが、まあそれもやるとあちこち細かいのが出て嫌になったのでなおしてません…
横から失礼します。
L-SMASHの muxer.exe では --optimize-pd オプションを指定しないとmoov atomがファイルの末尾に付くため、ファイルのダウンロードが終わらないと再生が始まらないということになります。
(ニコニコ動画やYouTubeはサーバー側で何らかの処理をしているみたいです)
x264guiEx.ini を見た限り、muxer.exe 使用時に --optimize-pd は用いられていないようですので、それが原因ではないでしょうか。
なお、L-SMASHの remuxer.exe は無条件でmoov atomをファイル先頭に持ってくる処理を行うので、afs使用時に問題が無いのは remuxer.exe を使用するからだと思います。
余談ですが、すでに作った動画のmoov atomを先頭に持ってくる方法は、専用のツールとかも検索すればいくつか見つかりますが、x264guiExを使っていればすでに持っているはずのL-SMASHの remuxer.exe を使って、 remuxer.exe -i old.mp4 -o new.mp4 とするのが簡単かと思います。
> (ニコニコ動画やYouTubeはサーバー側で何らかの処理をしているみたいです)
なるほど…とりあえず細かいことはよくわからなかったので実際に動作検証すればわかるだろうと思い、ニコ動でまず試していました。ヤマ勘で--optimize-pdをつけたり外したりしてニコ動にあげてみたのですが、なにも変わらなかったので違うのかなあ…と思いよくわからなくなってしました。
結局、勘はあたりだった、とのことで教えていただきありがとうございます。
2.33v2で--optimize-pdをつけときました。
すばやい対応をしていただいて、ありがとうございます。
やってぃ さんのほうの現象がこれで解決されればいいのですが。
忙しい中対応ありがとうございます。
さっそく最新版を導入してエンコしてみたら読み込みつつ再生されるようになりました。
rigayaさん MUTOさん ありがとうございます!
うまくいってよかったです。MUTOさんありがとうございました!
このコメントは管理人のみ閲覧できます
音声タブの件は、x264guiEx 2.34で修正しました。
http://rigaya34589.blog135.fc2.com/blog-entry-678.html
SupTitle.dllというのは知らないのでよくわかりません。出力プラグインであるx264guiExとは関係ないかと思いますが。
「オフセットアドレス : 0x0000c42d」というのは、たしかに設定画面を開く箇所ですが、こちらで使用している限りは発生せず、よくわかりません。
このコメントは管理人のみ閲覧できます