« カトリ24時間タイマー復活 | トップページ | ヘッドホンアンビエンスコントローラ »

2018年7月 2日 (月)

テキストエディタのマクロを使わず,Windowsの標準コマンド「findstr」を使った手法を追加(jw.orgで字幕テキスト抽出後の処理)

テキストエディタのマクロを使わず,Windowsの標準コマンド「findstr」を使った手法を追加(jw.orgで字幕テキスト抽出後の処理)

http://midorigame-ferret.cocolog-nifty.com/blog/2016/05/jworgmp4srt-8bb.html
20160528 : jw.orgで字幕テキストの有る動画(MP4),および,字幕ファイル(SRT)の不要部分の削除手法
へは下記記述を追加した。長文なので,追加部分だけを下記に記載しておく。

2018-07-02 懶道人(monogusadoujin)

※ 2018-07-01追記(ここから):テキストエディタのマクロを使わず,Windowsの標準コマンド「findstr」を使った手法を追加。

https://www.atchfactory.com/mvt/cat2/tips/mp4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E5%AD%97%E5%B9%95%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%97%E3%81%9F%E3%81%84.html

https://www.atchfactory.com/mvt/cat2/tips/mp4ファイルから字幕を取り出したい.html
mp4ファイルから字幕を取り出したい
2017/6/15,2017/10/22
やまねこのあしあと

さんのブログが大変参考になった(感謝!)
「My MP4Box GUI 0.6.0.6」( https://www.videohelp.com/software/My-MP4Box-GUI )を使ったGUIでの字幕抽出手法が紹介されている。特に役立つのは,字幕番号,経過時間,空行を削除するバッチで,findstrコマンドを使い,不要行を削除する手法。これがあれば,テキストエディタをわざわざインストールしてマクロ機能を使う必要がない。非常にシンプルになる。findstrの使い方は,ファイル名を指定して実行で「cmd」でDOS窓を開き,「findstr /?」で見ることができる。

・ファイル名:test3.cmd

・バッチの内容:
for %%i in (*.mp4) do mp4box -srt 3 %%i
for %%i in (*.srt) do findstr /V /R "[0-9][0-9]:[0-9][0-9]:[0-9][0-9],[0-9][0-9][0-9]" %%i | findstr /V /R "^[0-9]*$" > "%%i.txt"

※ 以上,2018-07-01追記(ここまで)。

test3.cmd を保存したフォルダに,mp4のファイルを入れて,test3.cmd を実行(ダブルクリックまたはEnter)をすれば,このフォルダに入っている全てのmp4ファイルに対して字幕抽出処理が行われる。処理が終わったら,別のフォルダにmp4,srt,txtファイルは移動しておいた方が,次回余計な処理をしなくて済むだろう。拡張子srtのファイルは消してしまってもよいだろうと思う。(mp4も大きいし画質悪いバージョンを字幕抽出用にダウンロードしたのなら不要だろうから,これまた消してしまってよいだろうと思う。)

mp4box.exe は,
  http://www.videohelp.com/software/mp4box
  Video De/Multiplexers 「MP4BOX」
の旧版 0.4.6-rev2698
  MP4Box-0.4.6-rev2698.zip
であれば,mp4box.exe 単独で作動するが,
  https://www.videohelp.com/software/My-MP4Box-GUI
  My MP4Box GUI 0.6.0.6
に同梱されているものは,単独では動作しないので注意が必要。

My MP4Box GUI v0.6.0.6.7z を,7zipの展開(解凍)可能なツールで取り出した Setup.exe の実行により C:\Program Files\My MP4Box GUI\Tools\ に
   2012/05/25  06:29           166,400 MP4Box.exe
   2012/02/03  04:20           655,360 js32.dll
   2012/02/03  04:11         1,098,752 libeay32.dll
   2012/05/25  06:29         3,267,584 libgpac.dll
   2012/10/21  10:29         3,032,984 MediaInfo.dll
   2012/02/03  04:11           237,056 ssleay32.dll
   2009/11/01  21:36             7,637 license.txt
               7 個のファイル           8,465,773 バイト

が保存されるが,test3.cmd の処理には,MP4Box.exe本体に加えて
   js32.dll
   libeay32.dll
   libgpac.dll
   ssleay32.dll
と MediaInfo.dll 以外のDLLがすべて必要だった。

ちなみに,現時点(2018-07-01)では
  Latest version
  0.7.0 / 0.7.2 Nightly (April 14, 2017)
が最新(未試行)。

「My MP4Box GUI 0.6.0.6」を使って,字幕抽出する手法は,上記「やまねこのあしあと」さんのサイトがとても詳しいが,とりあえず必要最小限のことはメモしておこう(たびたび感謝)。

たとえば,JW Broadcasting からダウンロードした
   jwb_J_201806_01_r240P.mp4
     ※ 「字幕があるなら表示する」のチェックははずす(OFF)。
     ※ 字幕抽出が目的なので一番ファイルサイズの小さいものを選択。
を字幕抽出してみる。

 (1) My MP4Box GUIを起動。
 (2) 「Demux」タブをクリック。
 (3) 「Select file...」欄に,jwb_J_201806_01_r240P.mp4 をドラッグ&ドロップするか,
   「Open」をクリックして,jwb_J_201806_01_r240P.mp4 を選択して「開く」。
 (4) 「Timed Text」のウィンドウ(小さなダイアログ)が表示されたら,「OK」をクリック。
 (5) 一覧には3行表示される。
    jwb_J_201806_01_r240P. Video - AVC - 1h 10mn - 320 x 180 pixels
    jwb_J_201806_01_r240P. Audio - AAC - 1h 10mn - 110 Kbps - 2 channels - 44.1 K
    jwb_J_201806_01_r240P. Text - Timed text
   このうち,一番下の「Text - Timed text」にチェックを入れ(チェックボックスON),「Demux」をクリック。
 (6) jwb_J_201806_01_r240P.mp4 と同じフォルダに,jwb_J_201806_01_r240P_3_text.srt が出力される。

といった段取り。

ただし,注意点は,ウイルス対策ソフトで身代金ウイルス(ランサムウェア)対策がなされていると,mp4box.exe の出力が阻まれてしまうことがある点。実際,当方PC(Windows10 Home,バージョン1803,32bit)にインストールしているソースネクスト社「スーパーセキュリティ」で,ランサムウェア対策をオンにしていると(初期値はオフ),「通知」に
   アプリケーションのアクセスがブロックされました
   モジュール: ランサムウェアからファイル保護
   アプリケーション「 mp4box.exe 」が、保護対象のフォルダ内のファイルを変更しようとして、ブロックされました。
   保護対象のフォルダ: (略)
   認識のないアプリケーションの場合、あるいは保護ファイルを変更されたくない場合はブロックすることをおすすめします。 アプリケーションが信頼できる場合のみ、許可してください。
といったログが記録されている。困ったことに,ブロックした瞬間には何も画面に表示されないので,アプリの不具合かと思ってしまう。「通知」のログから「アプリケーションを表示」し,「完全遮断」→「許可」に変えてやらないといけない。まぁ,面倒ではあるが,未知の不審なプログラムからPCを守るためだから仕方ないところだろう。

【関連記事一覧】JW Broadcasting MP4 字幕

http://midorigame-ferret.cocolog-nifty.com/blog/2016/05/jw-broadcasting.html
20160522 : JW Broadcasting MP4字幕再生成功(Media Player Classic/Windows8.1)

http://midorigame-ferret.cocolog-nifty.com/blog/2016/05/jw-broadcasti-1.html
20160523 : JW Broadcasting MP4字幕再生&倍速再生成功(VLC for Fire/VLC for Android)

http://midorigame-ferret.cocolog-nifty.com/blog/2016/05/jw-broadcasti-2.html
20160526 : JW Broadcasting MP4字幕抽出成功(MP4BOX,Windows)

http://midorigame-ferret.cocolog-nifty.com/blog/2016/05/jworgmp4srt-8bb.html
20160528 : jw.orgで字幕テキストの有る動画(MP4),および,字幕ファイル(SRT)の不要部分の削除手法

http://midorigame-ferret.cocolog-nifty.com/blog/2016/06/jw-broadcasting.html
20160616 : JW Broadcasting MP4字幕再生成功(iTunes/Windows8.1)

http://midorigame-ferret.cocolog-nifty.com/blog/2016/06/jw-broadcasti-1.html
20160616 : JW Broadcasting ビデオ・オンデマンド字幕表示成功(Windows8.1 IE11,Chrome)

http://midorigame-ferret.cocolog-nifty.com/blog/2016/06/jw-library-ac53.html
20160616 : JW Library 動画のファイル名一覧とタイトル(題名),アルバム名の一覧を作る

http://midorigame-ferret.cocolog-nifty.com/blog/2017/03/jw-broadcasting.html
20170301 : JW Broadcasting MP4字幕再生成功(VLC/Windows10)

|

« カトリ24時間タイマー復活 | トップページ | ヘッドホンアンビエンスコントローラ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: テキストエディタのマクロを使わず,Windowsの標準コマンド「findstr」を使った手法を追加(jw.orgで字幕テキスト抽出後の処理):

« カトリ24時間タイマー復活 | トップページ | ヘッドホンアンビエンスコントローラ »