スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

副音声テスト

副音声のテスト用

自動エンコード等の過程で、avsファイルが生成されるように設定してある。
多重音声番組の場合、そのavsファイルの音声は、主音声のものである。

副音声のavsファイルを作成するなら、音声とDelay値を副音声のものに変えさえすればよいことになる・・・。
という感じでテキトーに作った代物。無保証版。

BSジャパンのみ。ts2aac利用
・ヴァンガード 英語版[二]
・機動戦士ガンダム 第07板倉小隊REV.2[多]



@echo off
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-116.html
setlocal


if not "%~x1"==".avs" (
goto :end_not_avs
) 

rem 説明書き
rem とんでもなくテキトーです。
rem 主音声のavsをこのbatファイルに入力します。
rem 主音声のみ存在する場合に、副音声を作成する。
rem ※ファイルパス切り出しの都合上、http://soranikakaruhashi.blog.fc2.comの形式のavs生成batファイルにより生成されたavsファイルのみ利用可能。

echo ###############

rem BSジャパンのみのテスト用です。
rem ESが別になっている放送局のみ対応できる気がします。
rem 同じESでの副音声を処理するにはBonTsDemux等を使って実験。

rem ########################################
rem ■ts2aacの場所を指定する。ほかの場所に置く場合はここで指定します。

SET ts2aac_exe="C:\DTV\ts2aac v0.12 SHA-1_F4E3D2796C0006A6C0EC76F93697C8A67027A087\ts2aac.exe"
rem ########################################







rem ########################################
rem 入力したavsファイルから、以下のファイルのパスを抽出。

rem d2vファイル d2vファイルは、同名のTSファイルと同じフォルダにあるはず→TSファイルのパスとしても再利用。
for /F "tokens=* delims=" %%a in ('findstr /R "MPEG2" "%~1"') do set VideoSource=%%a
echo ① %VideoSource%

rem aacファイル 主音声PIDから、映像PIDと副音声のPIDを求める(強引な手法)。※2つ目のESがあるなら抽出としても同じ
for /F "tokens=* delims=" %%l in ('findstr /R "bassAudioSource" "%~1"') do set AudioSource=%%l

echo #####
echo VideoSource(d2vファイルの行)
echo %VideoSource%
echo AudioSource(aacファイルの行)
echo %AudioSource%
echo #####
rem ########################################


rem ########################################
rem 映像ファイルd2vのパスの抽出
set VideoSource_path=%VideoSource%

rem m文字目から、最後まで
set VideoSource_path=%VideoSource_path:~8%
set VideoSource_path=%VideoSource_path:MPEG2Source("=%
set VideoSource_path=%VideoSource_path:MPEG2VIDEO("=%
set VideoSource_path=%VideoSource_path:")=%

echo #####
echo d2vファイルのパス
echo VideoSource_path
echo %VideoSource_path%
echo #####

echo TSファイルのパス
set TsSource_path=%VideoSource_path:.d2v=.ts%
set TsSource_path=%TsSource_path:.m2v=.ts%

echo TsSource_path=%TsSource_path%

rem ########################################


rem ########################################
rem 音声ファイルのパスの抽出
set AudioSource_path=%AudioSource%

rem m文字目から、最後まで
set AudioSource_path=%AudioSource_path:~23%
set AudioSource_path=%AudioSource_path:("=%
set AudioSource_path=%AudioSource_path:")=%

echo #####
echo 音声ファイルのパス
echo AudioSource_path
echo %AudioSource_path%
echo #####

echo 主音声
set Main_audio_source=%AudioSource_path%
echo 主音声 %Main_audio_source%
rem ########################################





rem 副音声
rem テスト

rem BSジャパン 以下?BS11、BS朝日、BS日テレ、WOWOWプライム
    ECHO %Main_audio_source% | find "0x141" >NUL
    IF %ERRORLEVEL% EQU 0 (
    ECHO 主音声 %Main_audio_source% TRUE
    ECHO 副音声候補 を設定
    set video_id=0x140
    set Secondary_audio_id=0x142
    )

rem ディズニーチャンネル、Dlife
    ECHO %Main_audio_source% | find "0x1041" >NUL
    IF %ERRORLEVEL% EQU 0 (
    ECHO 主音声 %Main_audio_source% TRUE
    ECHO 副音声候補 を設定
    set video_id=0x1001
    set Secondary_audio_id=0x1051
    )

rem WOWOWライブ
    ECHO %Main_audio_source% | find "0x241" >NUL
    IF %ERRORLEVEL% EQU 0 (
    ECHO 主音声 %Main_audio_source% TRUE
    ECHO 副音声候補 を設定
    set video_id=0x240
    set Secondary_audio_id=0x242
    )

rem WOWOWシネマ
    ECHO %Main_audio_source% | find "0x341" >NUL
    IF %ERRORLEVEL% EQU 0 (
    ECHO 主音声 %Main_audio_source% TRUE
    ECHO 副音声候補 を設定
    set video_id=0x340
    set Secondary_audio_id=0x342
    )





echo 映像のPID %video_id%
echo 副音声のPID %Secondary_audio_id%

echo d2vファイル名を、TSファイル名とみなして、ts2aac出力用パスとして利用。

set ts2aac_output_path=%VideoSource_path:.d2v=%
set ts2aac_output_path=%ts2aac_output_path:.m2v=%
set ts2aac_output_path=%ts2aac_output_path:.ts=%

echo ts2aac_output_path=%ts2aac_output_path%



:avs
echo 副音声を用意(あるなら作成)。
%ts2aac_exe% -i "%TsSource_path%" -o "%ts2aac_output_path%" -v %video_id% -a %Secondary_audio_id% -B -D > "%ts2aac_output_path%_2.ts2aac.txt"



echo 副音声のファイルの検索
echo #####################################

for /F "delims=" %%A in ('echo "%%ts2aac_output_path%%*%%Secondary_audio_id%%*DELAY*ms.aac"') do (
    set Secondary_audio_source="%%~fA"
    set Secondary_Delay_source="%%~nxA"
)
 
echo 副音声のフルパス
echo Secondary_audio_source
echo %Secondary_audio_source%
echo 副音声のファイル名
echo Secondary_Delay_source
echo %Secondary_Delay_source%

set Secondary_audio_path=%Secondary_audio_source%
set AudioSource2=audio = bassAudioSource(%Secondary_audio_source%)

echo #####################################



echo 副音声が存在するなら、副音声用のavsを生成。
if exist %Secondary_audio_path% (

rem avs作成
call :avs_cal "%~1"

rem 編集
call "Audio_Edit.bat" "%~n1_2ndAudio.avs"

rem 無劣化編集
call "Lossless_Audio_Edit.bat" "%~n1_2ndAudio.avs"
) else (
echo 副音声は存在しません。
)



endlocal
pause
exit /b





















rem ##### ##### ##### #####
rem 副音声用のavsを作成
:avs_cal
echo aacソースからDelay値を取得
echo "Secondary_Delay_source" %Secondary_Delay_source%

rem Secondary_Delay_secondの値を取得する(強引な手法で・・・。)
set Secondary_Delay_second=%Secondary_Delay_source:~-14,10%
echo %Secondary_Delay_second%

rem 不要な文字を消す。(7とか-7とかの値が得られる)
set Secondary_Delay_second=%Secondary_Delay_second:D=%
set Secondary_Delay_second=%Secondary_Delay_second:E=%
set Secondary_Delay_second=%Secondary_Delay_second:L=%
set Secondary_Delay_second=%Secondary_Delay_second:A=%
set Secondary_Delay_second=%Secondary_Delay_second:Y=%
set Secondary_Delay_second=%Secondary_Delay_second:.=%
set Secondary_Delay_second=%Secondary_Delay_second:m=%
set Secondary_Delay_second=%Secondary_Delay_second:s=%
set Secondary_Delay_second=%Secondary_Delay_second: =%




rem _aには、元の値、_bには絶対値
set Secondary_Delay_second_a=%Secondary_Delay_second%
set Secondary_Delay_second_b=%Secondary_Delay_second:-=%

echo Delay値(元の値)
echo "Secondary_Delay_second_a" %Secondary_Delay_second_a%

echo Delay値(絶対値)
echo "Secondary_Delay_second_b" %Secondary_Delay_second_b%

rem 小数点以下は0になる仕様を逆手に取って、小数点以下切り捨てに利用する。
set /a Secondary_Delay_second_num=%Secondary_Delay_second_b%/1000

echo 整数値
echo "Secondary_Delay_second_num" %Secondary_Delay_second_num%

rem 小数点以下3桁に整える(例 -7⇒-0.007をやりたいので、7⇒007の変換)
set Secondary_Delay_second_ms=00%Secondary_Delay_second_b%
set Secondary_Delay_second_ms=%Secondary_Delay_second_ms:~-3% 

echo 小数点以下3ケタ
echo Secondary_Delay_second_ms %Secondary_Delay_second_ms%


echo # Delay値の処理結果
echo # 取得したDelay値
echo Secondary_Delay_second %Secondary_Delay_second%

echo # 取得したDelay値の一番左の値
echo %Secondary_Delay_second:~0,1%

echo # +なら一とか十の位、-ならマイナス
echo %Secondary_Delay_second_a:~0,1% 

echo # 整数値
echo "Secondary_Delay_second_num" %Secondary_Delay_second_num%

echo # 小数点以下3桁
echo "Secondary_Delay_second_ms" %Secondary_Delay_second_ms%


echo # 書込み用Delay絶対値
echo %Secondary_Delay_second_num%.%Secondary_Delay_second_ms%

rem # +-の判定は、AVSファイル書き込み時に。

rem goto calend
rem exit/b

set avs_file_2ndAudio="%~dp0%~n1_2ndAudio.avs"
type "%~1" | findstr "MPEG2" >%avs_file_2ndAudio%
echo %AudioSource2%>> %avs_file_2ndAudio%
echo.>> %avs_file_2ndAudio%
echo AudioDub^(video, audio^)>> %avs_file_2ndAudio%
echo.>> %avs_file_2ndAudio%



echo ###### 音ズレ補正 #####>> %avs_file_2ndAudio%
rem +-判定し、avsファイルに書き込む
if %Secondary_Delay_second_a:~0,1% == - (
echo DelayAudio^(-%Secondary_Delay_second_num%.%Secondary_Delay_second_ms%^)>> %avs_file_2ndAudio%
) else (
echo DelayAudio^(%Secondary_Delay_second_num%.%Secondary_Delay_second_ms%^)>> %avs_file_2ndAudio%
)
echo.>> %avs_file_2ndAudio%


echo ##### CMカット。本編等残す部分のみ範囲選択、フレーム単位で指定します。>> %avs_file_2ndAudio%
type "%~1" | findstr "Trim(" >>%avs_file_2ndAudio%

echo.>> %avs_file_2ndAudio%

echo 副音声用のavs作成終わり
exit /b


rem ##### ##### ##### #####






:ts
echo ts2aac
echo TSファイル "%~1"
%ts2aac_exe% -i "%~1" -o "%~n1" -v %video_id% -a %Secondary_audio_id% -B -D > "%~n1_2.ts2aac.txt"

echo test
rem %ts2aac_exe% -i "%~1" -o "%~n1" -v 0x1001 -a %Secondary_audio_id% -B -D > "%~n1_2.ts2aac.txt"
rem %ts2aac_exe% -i "%~1" -o "%~n1" -e 2 -v 0x100 -a %Secondary_audio_id% -B -D > "%~n1.ts2aac.txt"

:end
endlocal
rem pause
exit /b

:end_not_avs
endlocal
echo ### Caution ###
echo avsファイル(※)を入力してください。
echo ※ファイルパス切り出しの都合上、http://soranikakaruhashi.blog.fc2.comのavs生成batファイルを利用して作成したavsファイルのみ利用可能です。
echo ###############
pause
exit /b




AmazonベストセラーTOP5
アニメ(BD/DVD)
ライトノベル
コミック
フィギュア・ドール
アニメゲームmusic

コメントの投稿

非公開コメント

プロフィール

空に架かる橋

Author:空に架かる橋
FC2ブログへようこそ!
このブログについて(プライバシーポリシー)
Amazon.co.jpアソシエイト
こちらのブログはたまに各種実験会場となるため、デザイン変更等により表示が遅くなったり、文字が読みにくかったりする場合があります。 そのうちなおりますm(_ _)m
記事の内容に問題がある場合は、ただちに記事内容の利用をやめてください。

カウンター

現在の閲覧者数:

DTV研究
検索フォーム
カテゴリ
PT3 (3)
最新記事
最新コメント
最新トラックバック
月別アーカイブ
Amazonランキングテスト3.2
内容:

カテゴリー:

ノード:

アダルトを
選択しない 表示しない
※カテゴリー変更後に有効
RSSへのリンク
TGテストエリア
テストエリアb
AmazonベストセラーTOP5
アニメ(BD/DVD)
ライトノベル
コミック
フィギュア・ドール
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。