響ツールの TemplateA.bat (魔改造版) ( No.32 )
日時: 2018/06/20 09:00
名前: おひげ

需要無視シリーズの第2弾です。

HibikiTool300_beta8の保存用のバッチファイルを修正して機能を追加してみました。

映像付きラジオがまれにあり、複数画質のマルチストリーミングになっている場合、標準の TemplateA.bat では
低画質の物しか保存できないため、ストリーミング情報を確認して分岐し、高画質の物を保存するように処理をいれてみました。


【機能追加項目】

・本日のつぶやき保存の場合、ファイル名をわかりやすく保存するようにしてみた
・ダウンロードURLのストリーミング情報の表示
・ffmpeg の大量のログの抑止
・映像付きラジオ(複数画質)のURLが入力された場合、高画質の物[映像データ(Stream #0:4)、音声データ(Stream #0:3)]を保存


それぞれのセクションで何をしているかは一応コメントとして記載しています。(XPの場合は timeout が使えないので pauseに置き換えてください)

※保存中まるで止まっているように見えますがログを抑制しているだけです、保存中にうざいほど流れるログが見たい場合は、
 本文の set log= の行を消すか、REMでコメントアウトしてください。


-------ここから下をコピペして TemplateA.bat として HibikiTool300_beta8 と同じフォルダに保存してください-------(この行は含めないこと)
@echo off

::← の行はコメントです。
::
::【置換情報】
:: ツールによって置き換えされる文字列があります。
:: 仕様書\バッチ置換特殊定数一覧.html をご覧ください。
::

::↓【ffmpegのログを調整 [表示したい場合は次の set 文の前に :: を入れてください] 】

 set log=-loglevel error

::↓【例:番組名とURLを表示する】

 echo 番組名:$BNAME$
 echo 回数:$CNT$ [$YYYYMMDD$]
 echo CAST : $CAST$
 echo.
 echo URL:$URL_ECHO$

 title $BNAME$ - $CNT$

::↓【ここで分岐処理をしています [0] HibikiTsubuyaki.exe実行時 [1] Hibiki3.exe 実行時】

 if "$MODE$"=="0" goto tubuyaki
 if "$MODE$"=="1" goto housou

 goto end

::↓【本日のつぶやきの処理です。[本日のつぶやき(番組名)_日付.mp4] 形式で保存されます】

:tubuyaki

 echo.
 echo 本日のつぶやき 保存中... [$BNAME$ $YYYYMMDD_JA$]
 echo.
 set title2="$DIR$本日のつぶやき($BNAME$)_$YYYYMMDD_JA$.mp4"
 ffmpeg -i "$URL$" %log% -vcodec copy -acodec copy -bsf:a aac_adtstoasc %title2%
 goto end

:housou

::↓【先頭2秒の保存を試しストリーミング情報を log.txtに保存】

 ffmpeg -i "$URL$" -vcodec copy -acodec copy -bsf:a aac_adtstoasc -t 2 "tmp.mp4" > log.txt 2>&1
 del tmp.mp4


::↓【保存した log.txt から必要のない項目を削除して整理】

 findstr /V "ffmpeg built lib http help speed overhead avc1 mp4a" log.txt >log2.txt
 findstr "Duration Program Stream" log2.txt >log.txt
 del log2.txt


::↓【log.txt をチェックしログに [Stream #0:2 -> #0:0] が存在しているか確認して分岐】

 echo.
 findstr /C:" Stream #0:2 -> #0:0 (copy)" log.txt >nul

 if %errorlevel% EQU 0 (

  echo.
  echo *** streaming information ***
  echo.
  findstr /v "mapping ->" log.txt
  echo.
  echo Duration: の後ろがラジオの長さです。 Program が複数ある場合は複数画質が混在するマルチストリーミングです。
  echo.
  echo *** 複数画質ストリーミングから高画質【Program 2 [映像:4 音声:3]】を保存中 ***
  echo.

  del log.txt

  ffmpeg -i "$URL$" %log% -map 0:4 -map 0:3 -vcodec copy -acodec copy -bsf:a aac_adtstoasc "$FNAME_NOEXT$_$YYYYMMDD_JA$.mp4"

 ) else (

  echo.
  echo *** streaming information ***
  echo.
  findstr /v "mapping ->" log.txt
  echo.
  echo Duration: の後ろがラジオの長さです。 Program が複数ある場合は複数画質が混在するマルチストリーミングです。
  echo.
  echo *** 標準ストリーミング【Program 0】を保存中 ***
  echo.

  del log.txt

  ffmpeg -i "$URL$" %log% -vcodec copy -acodec copy -bsf:a aac_adtstoasc "$FNAME_NOEXT$_$YYYYMMDD_JA$.mp4"

 )

 echo.
 echo *** ダウンロード処理は終了しました ***
 echo.
 echo ファイル名 : $FNAME$
 echo.

 goto end


::↓【終了時の処理です、保存終了後に処理ウィンドウを10秒間だけ表示してから自動的に閉じる設定です】
:end

 timeout 10

exit
-------ここから上をコピペしてください-------(この行は含めないこと)




トップページ