Giter Site home page Giter Site logo

tsdump's Introduction

tsdump

このツールについて

概要: いわゆる「全録」をPCで行うための軽量で安定したコマンドライン録画ツール

引数で指定したチューナー、チャンネルの番組をひたすら指定したディレクトリに書き出し続けるのがメインの機能です。
その他、以下の特徴があります。

  • 主にC言語で書かれていて高速で安定しているので月オーダーの連続動作にも耐える
  • Windows(BonDriver)とLinux(DVB)に対応
  • 番組情報対応(番組自動分割)
  • 番組の前後のマージン録画対応
  • TSを外部プログラムにパイプで渡す機能があり様々な外部プログラムと連携可能
  • モジュール用のAPIがあり内部構造に直結した機能拡張も可能

動作環境

Windows

VS2017で動作テストをしています(プロジェクトファイルそのものは2013で作ったものを使いまわしているのでバージョン12になっています)。
XP以降のWindowsならなんでも動くかとは思いますが、Windows10で動作確認をしています。
チューナーAPIはBonDriver入力モジュールを標準搭載しています。

Linux

libarib25(→stz2012/libarib25)とDVBインタフェース(一般的なLinux環境には存在)が必要です。

Ubuntu16.04とDebian8.xでmakeが通ることを確認しています。
多少のMakefileなどの修正は必要かもしれませんが最近のLinux(+gcc)ならビルド可能かとは思います。
CP932のファイルを入力できないのでclangではビルドできません、今のところgccのみでビルドできます。
MULTI2デコード機能が不要であればmod_arib25関連の記述を削除することでlibarib25に依存せずビルドできます。
チューナーAPIはDVB入力モジュールを標準搭載しています。

DVBはチューナーごとに機種依存な挙動があり、多少の修正をしないと正常に動作しないチューナーがあるかもしれません。
特に信号強度やCNRの取得方法や単位はチューナーやドライバによってバラバラです。

一応Ubuntu16.04(Kernel4.4)における以下のチューナーの動作は確認しています

  • friio(白) 地上波
  • PT1/2 地上波、BS/CS
  • PT3 地上波、BS/CS ←このチューナーのドライバは新しいDVBのインタフェースに則っており最も標準性が高い
  • PX-S1UD V2.0 地上波
  • TBS-6814 地上波 (TBS6814 Linux Driver v160630) ※メーカー提供のプロプライエタリドライバ

それ以外

プラットホーム向けのチューナーAPIとデコードライブラリが上記2プラットホームのものしか組み込まれていないので
スタンドアローンの録画ツールとしては意味をなさないですが、
gccの存在するUNIXライクOSならば多少の修正でビルド自体は可能かと思います。
たとえば、Cygwinでファイル入力を使って開発中のLinux対応部分の動作テストをしています。


主要なコマンドオプション

Windows

--bon [BonDriver.dll] *
--sp [チューナー空間] *
	TVTest等参照
--ch [チャンネル] *
--b25dec B25Decoder.dllを用いてMULTI2をデコードする

Linux

--dev [DVBのデバイス番号]
	指定しなければ空いている使用可能なデバイスが自動的に選ばれる
--type [DVBのチューナータイプ] *
	isdb-tあるいはbsあるいはcs
--ch [物理チャンネル] *
	物理チャンネル番号
--tsnum [TS番号]
	BSのときのみ指定する
--arib25 libarib25を用いてMULTI2をデコードする

共通

--dir [出力ディレクトリ] *
	TVTest等参照
--sv [サービス](複数指定可)
	例: 
	--sv 333 --sv 334 (複数指定の例)
	--sv all
	など
--filein [入力ファイル]
	tsファイルをファイルから入力して仮想的なチューナーとして用いる機能で、主にテスト用
--no-fileout ファイルを出力しない
	パイプのみに出力したい場合など
--cmd [終了時実行コマンド](複数指定可)
	ファイルクローズの際に呼ばれる
--cwmin 終了時実行コマンドを最小化状態で起動する
--pipecmd [パイプ実行コマンド](複数指定可)
	ファイルに書き出すのと同じ内容がパイプで送り込まれる
--pipeconn パイプ実行コマンドの出力を次のコマンドの入力に接続する
--setopt [実行コマンドのオプション](複数指定可)
--nopipe 実行のみでパイプ出力を行わない
--cmd-output-redirect [dir]
	各コマンドの標準出力/エラー出力を指定したディレクトリに書き出す
--pwmin パイプ実行コマンドを最小化状態で起動する
--log ログを出力する
--logfile [ログのファイル名] ログのファイル名を指定する
	指定しない場合は、カレントディレクトリの"プロセスID.log"にログが出力される

* : 必須オプション

※組み込むモジュールによってオプションは増減します ※コマンドオプションなしで実行すると使用可能な全オプションが表示されます

コマンド例

Windows

tsdump --bon BonDriver_Hoge.dll --sp 0 --ch 14 --dir D:\

スペース0(通常、地上波:0 BS:0 CS:1)
BonDriverチャンネル14(通常、物理チャンネル27ch、関東だとNHK総合・東京)
をD:\に録画する
※スペースやBonDriverチャンネルはBonDriverの設定ファイルやTVTestなどで確認可能

Linux

tsdump --type isdb-t --ch 27 --dir /data/rec

/data/recに27chを録画する

Tip

発展的な使い方
tsdump (略: 録画オプション、要MULTI2デコード) --pipecmd ffmpeg --setopt "-i - -vcodec libx264 -acodec aac -preset ultrafast \"{FILENE}.mp4\""
ffmpegを用いて録画と同時にエンコードして同じディレクトリに.mp4ファイルを出力する
--no-fileoutを付ければ.mp4のみ保存する

ドキュメント

すみません、現状このreadme以上のドキュメントはありません。 詳しくはソースコードを読んでください。

ライセンス

使用は各々の責任で。

現状aribstr.cがGPLのコードを元にしているので全体としてはGPLになっています。
aribstr.cと関わらない部分であれば使用者の責任のもとで煮るなり焼くなり好きにどうぞ。

連絡先

Twitter: @homuh0mu

tsdump's People

Contributors

hayamdk avatar stuayu avatar

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.