Skip to content

Commit

Permalink
拡張編集使用時に映像と音声の長さが異なる場合には、警告を出して一時中断し、処理を継続するか判断してもらうよう変更。
Browse files Browse the repository at this point in the history
  • Loading branch information
rigaya committed Mar 26, 2024
1 parent f2f6ecc commit 166fdf6
Show file tree
Hide file tree
Showing 15 changed files with 219 additions and 62 deletions.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions x264guiEx/auo_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
#ifndef _AUO_VERSION_H_
#define _AUO_VERSION_H_

#define AUO_VERSION 0,3,27,0
#define AUO_VERSION_STR "3.27"
#define AUO_VERSION_STR_W L"3.27"
#define AUO_VERSION 0,3,28,0
#define AUO_VERSION_STR "3.28"
#define AUO_VERSION_STR_W L"3.28"
#define AUO_NAME_R x264guiEx
#define AUO_NAME_WITHOUT_EXT "x264guiEx"
#define AUO_NAME_WITHOUT_EXT_W L"x264guiEx"
Expand Down
46 changes: 41 additions & 5 deletions x264guiEx/encode/auo_audio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,42 @@ void auo_faw_check(CONF_AUDIO *aud, const OUTPUT_INFO *oip, PRM_ENC *pe, const g
}
}

void check_audio_length(OUTPUT_INFO *oip) {
int message_check_audio_length() {
std::wstring mes = g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT1_2) + std::wstring(L"\n\n");
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT1);
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT2) + std::wstring(L"\n\n");
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT3);
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT4) + std::wstring(L"\n\n");
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT5);
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT6) + std::wstring(L"\n\n");
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO1) + std::wstring(L"\n");
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO2) + std::wstring(L"\n");
mes += g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO3) + std::wstring(L"\n");
return MessageBox(NULL, wstring_to_string(mes).c_str(), AUO_NAME, MB_ICONERROR | MB_YESNO) == IDYES ? 1 : 0;
}

int check_audio_length(OUTPUT_INFO *oip, double av_length_threshold) {
if ((oip->flag & OUTPUT_INFO_FLAG_AUDIO) == 0) {
return 0;
}
const double video_length = oip->n * (double)oip->scale / oip->rate;
const double audio_length = oip->audio_n / (double)oip->audio_rate;
if (video_length <= 1.0) { // 1秒未満はチェックしない
return;
return 0;
}
if (oip->audio_n == 0) {
const BOOL exedit_is_used = check_if_exedit_is_used();
error_audio_length_zero(exedit_is_used);
if (oip->flag & OUTPUT_INFO_FLAG_BATCH) { // バッチ出力時は即エラー終了
return 1;
}
return message_check_audio_length();
}
av_length_threshold = std::abs(av_length_threshold);
av_length_threshold = std::max(1e-4, av_length_threshold);

const double audio_ratio = audio_length / video_length;
if (!check_range(audio_ratio, 0.95, 1.05)) { // 5%以上 差がある場合
if (!check_range(audio_ratio, std::max(1.0 - av_length_threshold, 0.0), 1.0 + av_length_threshold)) {
const BOOL exedit_is_used = check_if_exedit_is_used();
int selected_audio_rate = 0;
if (exedit_is_used
Expand All @@ -132,11 +160,19 @@ void check_audio_length(OUTPUT_INFO *oip) {
}
if (selected_audio_rate != 0) {
oip->audio_n = (int)div_round((int64_t)oip->audio_n * (int64_t)oip->audio_rate, (int64_t)selected_audio_rate);
info_audio_length_changed(video_length, audio_length, exedit_is_used);
info_audio_length_changed(video_length, audio_length, exedit_is_used, av_length_threshold);
} else { // 5%以上差がある場合
warning_audio_length(video_length, audio_length, exedit_is_used);
error_audio_length(video_length, audio_length, exedit_is_used, av_length_threshold);
// 拡張編集使用時には、意図しない出力である可能性が高く、エラー終了させる
if (exedit_is_used) {
if (oip->flag & OUTPUT_INFO_FLAG_BATCH) { // バッチ出力時は即エラー終了
return 1;
}
return message_check_audio_length();
}
}
}
return 0;
}

static void build_wave_header(BYTE *head, const int audio_ch, const int audio_rate, BOOL use_8bit, int sample_n) {
Expand Down
2 changes: 1 addition & 1 deletion x264guiEx/encode/auo_audio.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
void *get_audio_data(const OUTPUT_INFO *oip, PRM_ENC *pe, int start, int length, int *readed);

void auo_faw_check(CONF_AUDIO *aud, const OUTPUT_INFO *oip, PRM_ENC *pe, const guiEx_settings *ex_stg);
void check_audio_length(OUTPUT_INFO *oip);
int check_audio_length(OUTPUT_INFO *oip, double av_length_threshold);

AUO_RESULT audio_output(CONF_GUIEX *conf, const OUTPUT_INFO *oip, PRM_ENC *pe, const SYSTEM_DATA *sys_dat); //音声処理を実行
AUO_RESULT audio_output_parallel(CONF_GUIEX *conf, const OUTPUT_INFO *oip, PRM_ENC *pe, const SYSTEM_DATA *sys_dat);
Expand Down
4 changes: 3 additions & 1 deletion x264guiEx/encode/auo_encode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,9 @@ BOOL check_output(CONF_GUIEX *conf, OUTPUT_INFO *oip, const PRM_ENC *pe, guiEx_s
//音声エンコーダ
if (oip->flag & OUTPUT_INFO_FLAG_AUDIO) {
//音声長さチェック
check_audio_length(oip);
if (check_audio_length(oip, exstg->s_local.av_length_threshold)) {
check = FALSE;
}

const bool default_audenc_cnf_avail = (exstg->s_local.default_audio_encoder < exstg->s_aud_count
&& str_has_char(exstg->s_aud[exstg->s_local.default_audio_encoder].filename));
Expand Down
50 changes: 39 additions & 11 deletions x264guiEx/frm/auo_error.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,23 @@ void error_no_wavefile() {
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_NO_WAVFILE));
}

static void message_audio_length_different(const double video_length, const double audio_length, const BOOL exedit_is_used, const BOOL audio_length_changed) {

void error_audio_length_zero(const BOOL exedit_is_used) {
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_ZERO1));
if (exedit_is_used) {
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT1));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT2));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT3));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT4));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT5));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT6));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT7));
}
write_log_auo_line(LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_ZERO2));
write_log_auo_line(LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_ZERO3));
}

static void message_audio_length_different(const double video_length, const double audio_length, const BOOL exedit_is_used, const double av_length_threshold, const BOOL audio_length_changed) {
const int vid_h = (int)(video_length / 3600);
const int vid_m = (int)(video_length - vid_h * 3600) / 60;
const int vid_s = (int)(video_length - vid_h * 3600 - vid_m * 60);
Expand All @@ -377,24 +393,36 @@ static void message_audio_length_different(const double video_length, const doub
const int aud_s = (int)(audio_length - aud_h * 3600 - aud_m * 60);
const int aud_ms = std::min((int)((audio_length - (double)(aud_h * 3600 + aud_m * 60 + aud_s)) * 1000.0), 999);

const double diff_ratio = std::abs(1.0 - (audio_length / video_length));

if (audio_length_changed) {
write_log_auo_line( LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT1));
write_log_auo_line_fmt(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT1), diff_ratio * 100.0, av_length_threshold * 100.0);
write_log_auo_line_fmt(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT2),
vid_h, vid_m, vid_s, vid_ms,
aud_h, aud_m, aud_s, aud_ms);
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT3));
if (exedit_is_used) {
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT4));
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT5));
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT1));
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT2));
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT3));
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT4));
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT5));
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT6));
write_log_auo_line(LOG_INFO, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT7));
}
} else {
write_log_auo_line( LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT1));
write_log_auo_line_fmt(LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT1), diff_ratio * 100.0, av_length_threshold * 100.0);
write_log_auo_line_fmt(LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT2),
vid_h, vid_m, vid_s, vid_ms,
aud_h, aud_m, aud_s, aud_ms);
if (exedit_is_used) {
write_log_auo_line(LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT4));
write_log_auo_line(LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT5));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT1));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT2));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT3));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT4));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT5));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT6));
write_log_auo_line(LOG_ERROR, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_EXEDIT7));
} else {
write_log_auo_line(LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT6));
write_log_auo_line(LOG_WARNING, g_auo_mes.get(AUO_ERR_AUDIO_LENGTH_DIFFERENT7));
Expand All @@ -404,12 +432,12 @@ static void message_audio_length_different(const double video_length, const doub
}
}

void info_audio_length_changed(const double video_length, const double audio_length, const BOOL exedit_is_used) {
message_audio_length_different(video_length, audio_length, exedit_is_used, TRUE);
void info_audio_length_changed(const double video_length, const double audio_length, const BOOL exedit_is_used, const double av_length_threshold) {
message_audio_length_different(video_length, audio_length, exedit_is_used, av_length_threshold, TRUE);
}

void warning_audio_length(const double video_length, const double audio_length, const BOOL exedit_is_used) {
message_audio_length_different(video_length, audio_length, exedit_is_used, FALSE);
void error_audio_length(const double video_length, const double audio_length, const BOOL exedit_is_used, const double av_length_threshold) {
message_audio_length_different(video_length, audio_length, exedit_is_used, av_length_threshold, FALSE);
}

void error_audenc_failed(const wchar_t *name, const char *args) {
Expand Down
5 changes: 3 additions & 2 deletions x264guiEx/frm/auo_error.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,9 @@ void error_video_output_thread_start();
void warning_auto_qpfile_failed();
void warning_auo_tcfile_failed();
void error_open_wavfile();
void info_audio_length_changed(const double video_length, const double audio_length, const BOOL exedit_is_used);
void warning_audio_length(const double video_length, const double audio_length, const BOOL exedit_is_used);
void error_audio_length_zero(const BOOL exedit_is_used);
void info_audio_length_changed(const double video_length, const double audio_length, const BOOL exedit_is_used, const double av_length_threshold);
void error_audio_length(const double video_length, const double audio_length, const BOOL exedit_is_used, const double av_length_threshold);

void error_malloc_pixel_data();
void error_malloc_tc();
Expand Down
14 changes: 14 additions & 0 deletions x264guiEx/frm/auo_mes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,21 @@ static const char * AUO_MES_ID_NAME_STR[] = {
"AUO_ERR_AFS_GET_FRAME",
"AUO_ERR_OPEN_WAVFILE",
"AUO_ERR_NO_WAVFILE",
"AUO_ERR_AUDIO_LENGTH_EXEDIT1",
"AUO_ERR_AUDIO_LENGTH_EXEDIT2",
"AUO_ERR_AUDIO_LENGTH_EXEDIT3",
"AUO_ERR_AUDIO_LENGTH_EXEDIT4",
"AUO_ERR_AUDIO_LENGTH_EXEDIT5",
"AUO_ERR_AUDIO_LENGTH_EXEDIT6",
"AUO_ERR_AUDIO_LENGTH_EXEDIT7",
"AUO_ERR_AUDIO_LENGTH_ZERO1",
"AUO_ERR_AUDIO_LENGTH_ZERO2",
"AUO_ERR_AUDIO_LENGTH_ZERO3",
"AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO1",
"AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO2",
"AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO3",
"AUO_ERR_AUDIO_LENGTH_DIFFERENT1",
"AUO_ERR_AUDIO_LENGTH_DIFFERENT1_2",
"AUO_ERR_AUDIO_LENGTH_DIFFERENT2",
"AUO_ERR_AUDIO_LENGTH_DIFFERENT3",
"AUO_ERR_AUDIO_LENGTH_DIFFERENT4",
Expand Down
15 changes: 15 additions & 0 deletions x264guiEx/frm/auo_mes.h
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,22 @@ enum AuoMes {
AUO_ERR_OPEN_WAVFILE,
AUO_ERR_NO_WAVFILE,

AUO_ERR_AUDIO_LENGTH_EXEDIT1,
AUO_ERR_AUDIO_LENGTH_EXEDIT2,
AUO_ERR_AUDIO_LENGTH_EXEDIT3,
AUO_ERR_AUDIO_LENGTH_EXEDIT4,
AUO_ERR_AUDIO_LENGTH_EXEDIT5,
AUO_ERR_AUDIO_LENGTH_EXEDIT6,
AUO_ERR_AUDIO_LENGTH_EXEDIT7,
AUO_ERR_AUDIO_LENGTH_ZERO1,
AUO_ERR_AUDIO_LENGTH_ZERO2,
AUO_ERR_AUDIO_LENGTH_ZERO3,
AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO1,
AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO2,
AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO3,

AUO_ERR_AUDIO_LENGTH_DIFFERENT1,
AUO_ERR_AUDIO_LENGTH_DIFFERENT1_2,
AUO_ERR_AUDIO_LENGTH_DIFFERENT2,
AUO_ERR_AUDIO_LENGTH_DIFFERENT3,
AUO_ERR_AUDIO_LENGTH_DIFFERENT4,
Expand Down
2 changes: 2 additions & 0 deletions x264guiEx/prm/auo_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -683,6 +683,7 @@ void guiEx_settings::load_local() {
s_local.set_keyframe_as_afs_24fps = GetPrivateProfileInt( ini_section_main, "set_keyframe_as_afs_24fps", DEFAULT_SET_KEYFRAME_AFS24FPS, conf_fileName);
s_local.auto_ref_limit_by_level = GetPrivateProfileInt( ini_section_main, "auto_ref_limit_by_level", DEFAULT_AUTO_REFLIMIT_BYLEVEL, conf_fileName);
s_local.default_audio_encoder = GetPrivateProfileInt( ini_section_main, "default_audio_encoder", DEFAULT_AUDIO_ENCODER, conf_fileName);
s_local.av_length_threshold = GetPrivateProfileDouble(ini_section_main, "av_length_threshold", DEFAULT_AV_LENGTH_DIFF_THRESOLD, conf_fileName);
s_local.thread_pthrottling_mode = GetPrivateProfileInt( ini_section_main, "thread_pthrottling_mode", DEFAULT_THREAD_PTHROTTLING, conf_fileName);

s_local.amp_retry_limit = GetPrivateProfileInt( INI_SECTION_AMP, "amp_retry_limit", DEFAULT_AMP_RETRY_LIMIT, conf_fileName);
Expand Down Expand Up @@ -771,6 +772,7 @@ void guiEx_settings::save_local() {
WritePrivateProfileIntWithDefault( ini_section_main, "set_keyframe_as_afs_24fps", s_local.set_keyframe_as_afs_24fps, DEFAULT_SET_KEYFRAME_AFS24FPS, conf_fileName);
WritePrivateProfileIntWithDefault( ini_section_main, "auto_ref_limit_by_level", s_local.auto_ref_limit_by_level, DEFAULT_AUTO_REFLIMIT_BYLEVEL, conf_fileName);
WritePrivateProfileIntWithDefault( ini_section_main, "default_audio_encoder", s_local.default_audio_encoder, DEFAULT_AUDIO_ENCODER, conf_fileName);
WritePrivateProfileDoubleWithDefault(ini_section_main, "av_length_threshold", s_local.av_length_threshold, DEFAULT_AV_LENGTH_DIFF_THRESOLD,conf_fileName);
WritePrivateProfileIntWithDefault( ini_section_main, "thread_pthrottling_mode", s_local.thread_pthrottling_mode, DEFAULT_THREAD_PTHROTTLING, conf_fileName);

WritePrivateProfileIntWithDefault( INI_SECTION_AMP, "amp_retry_limit", s_local.amp_retry_limit, DEFAULT_AMP_RETRY_LIMIT, conf_fileName);
Expand Down
2 changes: 2 additions & 0 deletions x264guiEx/prm/auo_settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ static const BOOL DEFAULT_AMP_KEEP_OLD_FILE = 0;
static const BOOL DEFAULT_RUN_BAT_MINIMIZED = 0;
static const BOOL DEFAULT_SET_KEYFRAME_AFS24FPS = 0;
static const BOOL DEFAULT_AUTO_REFLIMIT_BYLEVEL = 0;
static const double DEFAULT_AV_LENGTH_DIFF_THRESOLD = 0.05;

static const int DEFAULT_LOG_LEVEL = 0;
static const BOOL DEFAULT_LOG_WINE_COMPAT = 0;
Expand Down Expand Up @@ -361,6 +362,7 @@ typedef struct LOCAL_SETTINGS {
BOOL enable_stg_esc_key; //設定画面でEscキーを有効化する
AUO_FONT_INFO conf_font; //設定画面のフォント
int default_audio_encoder; //デフォルトの音声エンコーダ
double av_length_threshold; //音声と映像の長さの差の割合がこの値を超える場合、エラー・警告を表示する
int thread_pthrottling_mode; //スレッドの電力スロットリングモード
int amp_retry_limit; //自動マルチパス試行回数制限
double amp_bitrate_margin_multi; //自動マルチパスで、上限ファイルサイズからビットレートを再計算するときの倍率
Expand Down
16 changes: 15 additions & 1 deletion x264guiEx/x264guiEx.en.lng
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,21 @@ AUO_ERR_VIDENC_VERSION4=Version of exe file
AUO_ERR_AFS_GET_FRAME=Failed to get frame from Aviutl.
AUO_ERR_OPEN_WAVFILE=Failed to open wav file.
AUO_ERR_NO_WAVFILE=Could not find wav file. Audio encoding has failed.
AUO_ERR_AUDIO_LENGTH_DIFFERENT1=Audio length seems to differ from video length.
AUO_ERR_AUDIO_LENGTH_EXEDIT1=Audio track in exedit and Aviutl might be conflicting.
AUO_ERR_AUDIO_LENGTH_EXEDIT2=In order to make audio from exedit active again, please abort output and
AUO_ERR_AUDIO_LENGTH_EXEDIT3=try switching scene in exedit, and retry output again.
AUO_ERR_AUDIO_LENGTH_EXEDIT4= (For example, switch scene to and from like "Root" �� "Scene1" �� "Root").
AUO_ERR_AUDIO_LENGTH_EXEDIT5=However when audio samplerate in exedit is different from the original audio,
AUO_ERR_AUDIO_LENGTH_EXEDIT6=this problem may not be solved.
AUO_ERR_AUDIO_LENGTH_EXEDIT7=Please note that audio track should be read only in exedit when using exedit.\n
AUO_ERR_AUDIO_LENGTH_ZERO1=There is no audio data to be written (Audio length is zero).\n
AUO_ERR_AUDIO_LENGTH_ZERO2=If you do not intentionally output audio, please check "No audio" in the "Audio compression" box
AUO_ERR_AUDIO_LENGTH_ZERO3=at the bottom of the output file dialog of the plugin output.
AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO1=Will you abort output?
AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO2=[ Yes ] ... Abort output
AUO_ERR_AUDIO_LENGTH_PROMPT_YESNO3=[ No ] ... Ignore warning and continue output
AUO_ERR_AUDIO_LENGTH_DIFFERENT1=Audio length seems to differ from video length. (%.1f�� > %.1f��)
AUO_ERR_AUDIO_LENGTH_DIFFERENT1_2=Audio length seems to differ from video length.
AUO_ERR_AUDIO_LENGTH_DIFFERENT2=Video: %d:%02d:%02d.%03d, Audio: %d:%02d:%02d.%03d
AUO_ERR_AUDIO_LENGTH_DIFFERENT3=Audio length has been adjusted to match video length.
AUO_ERR_AUDIO_LENGTH_DIFFERENT4=Audio track in exedit and Aviutl might be conflicting.
Expand Down

0 comments on commit 166fdf6

Please sign in to comment.