2019年 6月 9日

上位に戻る 動画変換カットソフト

TSファイルをエンコードしていたパソコンをWindows10に更新 今まで、TSファイルをMurdocCutで、CMをカット結合して
MediaCoderちゅうソフトでエンコードしていました MediaCoderがイマイチなので、FFMPEGを使ってCMカットエンコードの
フロントエンドを作ってみることに(いまさらですが・・)

機能概要 TSファイルなどをmp4などの形式にエンコード及び、動画の切り出し結合です CMの自動カット機能も付けています
がロゴ判定だけですので、背景色が、しろっぽいのがつづくと、判定できないので、誤認します トホホ

当初、VLCプレーヤのコントロールを使って再生しつつ、カットの位置を設定しようとしましたが、TSファイルなどの容量の大きい
ものは、うまくシークしてくれない上に、コントロールのマニュアルがまったく見つけられなかったので、現在は、メディアプレーヤ
のコントロールを使っています

メディアプレーヤで、再生できるファイルでないと、カットできません。この為、TSファイルなどの場合は、一旦 軽いmp4ファイルに
変換してから、そのファイルを再生させて位置を決め、TSファイルを切り出してエンコしています
行けてないス・・・。通常のVLCプレーヤでは、TSファイルまあシークできるので、おそらく、バッファリングなどの設定を変えれば
動くかもしれませんので、後々やってみます

FFMPEGが無いと、当たり前ですが、動きませんので、別途準備してください
GPLライセンスなので、同梱配布できません
https://ffmpeg.zeranoe.com/builds/


なんせ、素人がVBで、作ったので、バグだらけかもです・・・・。
さて、その後ですが、VLCで、何とか動き、事前エンコなしで、いきなりTSファイルからCMカットできるようになりました。
シークの動き悪いので、使いにくいです。MediaPlayerにm2tsのデコーダ入れたほうがいいかもしれません

追伸 VLCのバージョン3.0.6 を使っていたのですが、Windows7の旧マシンだと動きがいいので、2.2.1にしてみたら シーク早くなりました




1.インストール及び初期設定

2.エンコードタブ

3.カットタブ

4.CMカットタブ

5.その他タブ

6.複数ファイルの動画を切り出して1本に結合する方法


  1. インストール及び初期設定

    インストーラはありません。以下のzipファイルを解凍して適当なフォルダに置いてください
    ただし、実行して終わらせると、設定情報をドキュメントの中に、CuiFfmpegフォルダを作って保存します

    CuiFfmpeg v1.6.3 2019/09/21

    CuiFfmpeg_vlcテストバージョン VLCプレーヤを使っています 設定ファイルは、上記メディアプレーヤ版と混在しないよう分けました


    解凍すると、左記のようなファイルがあります

    CuiFfmpeg.exe このプログラム本体
    WMPLib.dll メディアプレーヤのライブラリです パソコンにメディアプレーヤがインストさ
    れていないと、動作しません(System32\wmp.dll が必要です)
    AForge.dll は、画像処理やAIのライブラリです 今回は、エッジの検出で使っています
    (LGPL)
    rplsinfo.exeは、m2tsファイルの番組情報などを読み出すツールです
    (フリー)

    って全て他力本願じゃあ






    @エンコードのしたファイルの出力先フォルダを指定します
    AFFMPEG.EXEを指定します 



  2. エンコードタブ

    ダイアログにチェックを入れると、コマンド画面が表示されます。チェックがないと最小化して実行します。
    入力(元ファイル)ファイルは、入力元の窓にドラッグアンドドロップすると、追加されます
    削除や、クリアしたい場合は、項目を選択して(複数選択可)右クリックで削除を選んでください

    出力の形式は、右のタブで選択します FFMPEGは、沢山の形式に対応していますが、録画変換が主目的なので、MP4とWMVを準備しました

    FFMPEG自体それほど詳しいわけではないのでコマンドは、どこかのサイトから頂戴してきたものです

    WMVは、旧版のWMV8しか対応してなさげでWMV9にはエンコードできないもよう なので、可変ビットレートは利用できません

    コマンドタブは、別の形式に変換したい場合、コマンドで直接入力します



  3. カットタブ

     
    @最終結合したファイルを保存する場所を指定します

    A一時作業ファイルの場所です。エンコードタブの出力フォルダの配下に作成され
    ます。一時ファイルは、現在消去させていないので、自分で削除してください

    B準備エンコ メディアプレーヤで再生できないファイルの場合、一旦、軽いmp4
    ファイルに変換します(解像度480×272 10fps 音声なしになります)

    分割設定作業を行った後、分割結合ボタンを押します
    トランスコードにチェックを入れない場合は、無劣化で切断結合します
    通常は、切断時にエンコして、無劣化で結合しています


    VLCプレーヤ版の場合は、別途VLCプレーヤがインストールされている必要があ
    ります

    インストールされている、フォルダを設定してください
    VLC版は、準備エンコ不要です エンコしても動作軽くなりません


    C分割設定ボタンを押すと、以下の画面が表示されます


    @A 画面を指定秒数移動します ホイールにチェックが入っている場合は、マウスのホイールで、シークします Aの移動量が適用されます
    カットしたい位置に来たら、B開始追加またはC終了追加ボタンを押して時間を設定します 設定が終わったら、7番ボタンを押します
    DCMカット開始ボタンを押すと、ロゴで判別して自動で、時間を挿入します。別途CMカットタブで、ロゴデータを作成する必要があります
    E開始、終了時間をクリックすると、その時間にシークします 変更したい場合は、マウスでスクロールさせて G開終変更ボタンを押すと
    書き換わります トレース表示にチェックを入れると、ロゴ判定の状況画面が表示されます 連続処理にチェックが入っていると、次の動画
    がある場合は、続けて処理します
    ※超重要事項 時間設定保存ボタンで、コマンドを生成しますので、分割トランスコードするしない及びエンコードタブの設定が反映されます。

    VLCプレーヤの場合
    VLCプレーヤの場合ですが、 別スレッドで動作するためVLCプレーヤ
    の状態が掴みにくく四苦八苦です
    又、位置を指定してから再生が始まるまで、時間がかかる場合がありま
    す。キーフレームが離れていると、遅くなるんじゃないかと思います

    @Rate 再生速度を設定します

    APTime 指定再生位置を指示したあと、再生コマンドを送っていますが
    これが、再生が始まらず、再生が始まるまでの待ち時間
     33→330msec

    少ないと、すべって再生されない、再生するが一時停止しないで再生
    しっぱなしになるなどになります

    VLCのバージョンV3.0.6からV2.2.1に落としたら

    Rate 5 で PTime 10 で、動作しましたので、まあまあ使える
    レベルです
    V3.06の場合は、PTimeは、30msec必要です
    パソコンの能力にもよるので、要調整です


    部分分割

    元ファイルに複数の動画があった場合に分割して結合することが
    できます

    時間設定エリアで、グループにしたいエリアを選択して右クリック
    分割グループ指定でグループを選択します

    変換されたファイル名の後ろにグループナンバーが記載されます

    グループ2を選ぶと、xxxxxxx2.mp4 になります








  4. CMカットタブ

    移動量は、CM自動カットで、シークする時間単位を入力します
    2秒になっているので、2秒進めてロゴチェックします

    判定時間は、アニメ内で、背景がしろっぽいのが続くと
    判別できないので、判定時間を過ぎてもロゴを検出できない
    場合は、CMが始まったと判断します

    判定方法を改善(改悪?)しました。
    古いバージョンから設定ファイルを引き継ぐと、無かった項目はデフォルト
    が設定されず、ゼロ値となります






    スクロールさせて、背景が均一な画面で、@ロゴ選択を押し、マウスで、ロゴ範囲を指定してください
    Aロゴ抽出ボタンを押すと、ロゴのエッジを取得します ロゴとは似つかないエッジですが、こんなものと、思ってBロゴ保存を押します
    背景のエッジが検出される場合は、異なる画面で、複数回ロゴ抽出を押してください。ロゴエッジのみになります
    留意事項 ロゴの範囲は、周囲に少し余裕をもって選択してください。ロゴ判別で、4dotまで離れた位置まで検索するため




  5. その他タブ

    エンコード処理処理、CM自動カット設定処理、分割結合処理終了時
    にコマンドを実行できます。デフォルトは、シャットダウン処理が記載さ
    れています

    また、各処理終了時に続けて処理したい場合にチェックを入れると次の
    処理を起動します
    メディアプレーヤ版のみ対応

    本チェックは、保存されませんので、つど設定必要です



  6. 複数ファイルの動画を切り出して1本に結合する方法

    久々に無劣化で、結合しようとしたら、あれ どうだったけ? 自分で作っておきながら悩んでしまいましたので、以下にやり方残しておきます
    複数の動画を結合する方法です


    右タブをファイルタイプに合わせる。無劣化の場合トランスコードのチェックを外す





    分割設定画面を表示する


    切り出すファイルの範囲を指定する
    切り出し時間の行を選択して
    右クリックで、コピーする

    時間設定保存ボタンを押して
    次のファイルに進む
    2つ目のファイルで、範囲を指定
    する

    コピーした範囲を行挿入する
    結合したいファイルが並ぶ

    時間設定保存を押して
    分割設定画面を終了する



    後は、分割結合ボタンを押してファイルを結合します。 上記例では、recvideot1の行を選択して分割結合ボタンを押します。変換先フォルダにrecvideot1の名前で
    出力されます

改変履歴
2019/06/11   分割設定画面 移動時に、キャプチャ座標を追従させるのを忘れていました。追従するように修正
            分割設定画面 最小化できないように変更 また、最前面になるように変更
            分割設定画面 自動処理でエラーがあった場合、メッセージボックスを出して終わっていたのを、メッセージを出して続行するよう
                      また、終了時、エラーログを保存するように変更 保存先は、マイドキュメントです
2019/06/12    分割設定画面 設定時間をクリップボードにコピー 別の動画の設定時間に挿入できるよう改変
            行削除時に、複数のセルを選択状態で削除した場合にエラーになるのを修正
2019/06/15   分割設定画面で、1元ファイルから、複数ファイルにグループ分けして変換できる機能を追加しました
2019/06/16   VLCプレーヤ版を作成しました。
2019/06/22   CMの検出方法を変更しました。 その他バグ修正
2019/06/23   背景白処理の背景輝度の指定に誤りがあったのを訂正 ロゴ検出で-側ではみ出す場合のチェックもれ修正 コマ送りの方法を変更
            (メディアプレーヤ版のみ修正)
2019/06/27   分割設定画面 切り取り箇所をダークブルーのラインで、記載する機能を追加。その他色々バグ修正
2019/06/29    CM自動カット連続処理時、極まれに自動処理が停止するのを回避。
           分割設定画面、ロゴ抽出画面表示時、1行目から表示していたのを、選択行を表示するように変更。
2019/07/11   準備エンコフォーカスが当たっているとこからスタート 入力一覧の内容を変更できるように修正(局名の抽出に失敗した場合の対応)
           その他バグ修正
2019/08/29   分割結合処理で、フォーカスがあたっている行からスタートにバグ修正
2019/09/21   ライブラリを同梱するのを忘れてましたので追加しました
2019/11/2    複数動画を結合する方法を追記しました



以上、間違いなどありましたら、下記掲示板にどうぞ

ご意見箱