GithubHelp home page GithubHelp logo

join_logo_scp_trial's Introduction

join_logo_scp_trial for nodejs & linux

概要

「join_logo_scp動作確認用バッチファイル by Yobi」を参考にsogaani氏が作成されたnodejs版の改造です。
ファイルの生成先などをYobi氏の作成されたオリジナルにあわせています。
また、こちらはJoinLogoScpTrialSetLinuxで使用するモジュールです。
単体でも動作しますが、JoinLogoScpTrialSetLinuxを使用することをおすすめします。

機能

join_logo_scpのCM位置検出機能について動作確認をするスクリプトです。
TSファイルを入力として、

  • CMカットしたAVSファイル
  • CMカットのためのffmpegへのフィルターオプション

を作成します。
(私はffmpegへのフィルターオプションは利用しないので未確認です。sogaani氏の作られたコードで生成されます。)

実行方法

事前にAviSynth+3.5.XとL-SMASH Sourceは入れてください。

  1. chapter_exe、logoframe、join_logo_scpをbinフォルダに入れてください。
  2. npm installnpm linkを実行
  3. jlse --helpが動作するかを確認
  4. 使用するロゴデータ(*.lgd)をこのフォルダ直下logoフォルダに格納
  5. 実行
    npm start -- -i "TSファイル"
  6. 検出が自動で行われ結果が生成されます。

TSファイルは相対パスで指定しても一応絶対パスに変換しますが、絶対パスで入力を推奨とします。

オプション 指定内容 説明
-- 何も指定しない 仕様上必須です。
-i 対象動画のパス 必須です。TSファイルのパスを指定します
-f true
false
[デフォルト:false]任意です。
ffmpegへのフィルターを生成する場合はtrueを指定します。
-e true
false
[デフォルト:false]任意です。
解析後にffmpegでエンコードを実施する場合はtrueを指定します。
-t cutcm
cutcm_logo
[デフォルト:cutcm_logo]任意です。
エンコードする際に使用するavsファイルを選択します。
cmcut_logoは動作にdelogo-AviSynthPlus-Linuxが必要です。
-o ffmpegのオプション 任意です。
" -c:v libx264"のように指定します。必ず先頭にスペースが1つ必要です。
-d ディレクトリ [デフォルト:入力ファイルディレクトリと同じ]任意です。
入力TSファイル位置と異なる場所にエンコードファイルを出力する場合は指定します。
-n ファイル名 [デフォルト:入力ファイル名と同じ]任意です。
入力TSファイル名と異なる名前でエンコードファイルを出力する場合は指定します。
-r true
false
[デフォルト:false]任意です。
AVSファイルなどエンコードファイル以外を消去します。

(true or false 指定はしなくてもオプションを付けるだけでtrueとなります。)
例(ffmpegフィルタ生成時):jlse -i "/tmp/test/局名_タイトル 話数.ts" -f
例(エンコードし、解析結果などを消す場合):jlse -i "/tmp/test/局名_タイトル 話数.ts" -e -t cutcm -o " -c:v libx264 -vf bwdif=1 -preset medium -crf 23 -aspect 16:9" -r

生成されるもの

ファイル名 内容
in_cutcm.avs 結果(CMカットした入力ファイル)
in_cutcm_logo.avs 結果(CMカット+delogo.so適用入力ファイル)delogoもlinux対応改造済み
in_org.avs CMカット前の入力ファイル
obs_cut.avs CMカットフレーム位置
obs_chapterexe.txt chapter_exe結果
obs_logoframe.txt logoframe結果
obs_jlscp.txt join_logo_scpによる番組構成解析結果
obs_param.txt ファイル名からタイトル、局名を検出し使用したJLparamの情報

その他にもいくつか出力されますが、一時ファイルです。

謝辞

オリジナルの製作者Yobi氏、
nodejsに移植をされたsogaani氏、
に深く感謝いたします。

主な変更点

sogaani氏が作成されたnodejs版からの主な改造点です。

  • チャンネル略称が先頭に来る場合のチャンネル検出パターンの追加
  • JLparam検出がうまくいっていなかったのを修正
  • JLparam検出結果(利用したJLparam情報)を保存するようにした
  • in_cutcm.avs in_cutcm_logo.avsを生成する機能の追加(そのままffmpegに食わせて実行できるファイル)
  • Yobi氏が制作されたものと同じようにresultフォルダにファイル名のフォルダを生成し、そこにデータを保存するようにした
  • 上記の変更に伴い、avsファイルとfilterファイルの保存先オプションの廃止
  • ffmpeg用のfilterはオプションで指定し生成するように変更
  • ファイル名からチャンネル名を検出できなかった時や、ロゴデータを見つけれなかった時はロゴフォルダの中をすべてlogoframeにわたすように変更
  • FFMS2ではなくL-SMASH Sourceを用いて入力するように変更
  • ライブラリの更新
  • ffmpegでエンコードまでする機能を実装
  • エンコードファイル以外を削除する機能を実装

join_logo_scp_trial's People

Contributors

tobitti0 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

join_logo_scp_trial's Issues

保存ディレクトリのオプションを用意する

EPGStationで保存ディレクトリを変更している場合現在のn(name)オプションでは対応できない。
現状は録画ファイルと同じ階層に指定した名前のファイルを生成するようになっているが、
s(savedir)オプションを用意し、柔軟な保存先選択機能が必要であると思われる。

実行エラー

/home/user/JoinLogoScpTrialSetLinux/JoinLogoScpTrialSetLinux/modules/join_logo_scp_trial/src/output/chapter_jls.js:50
for(let r of data.match(RegExp(strRegTrim,'g'))){
^

TypeError: data.match is not a function or its return value is not iterable
at Interface. (/home/user/JoinLogoScpTrialSetLinux/JoinLogoScpTrialSetLinux/modules/join_logo_scp_trial/src/output/chapter_jls.js:50:25)

data.match が functionとして利用できなくなってしまったみたいなのですが、
どのように修正すればいいでしょうか?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.