tsreplace 0.09
tsreplace 0.08
- Ubuntu 24.04用のパッケージを追加。
- 使用するffmpegのモジュールをffmpeg 7.0ベースに更新。 (Windows版)
- 置き換え対象のサービス以外をdropするように変更。
- 処理対象のサービスを選択するオプションを追加。 (-s, --service)
- データ放送のパケットを削除するオプションを追加。 (--remove-typed)
全サービスを録画したtsに対する処理の強化。
録画の場合、両方のチャンネルが欲しいというケースはあまり考えにくいので、あまり全サービス録画することはないと思ってあまり真面目に対応していなかったけど、今回処理を追加してみた。
全サービス録画するとこんな感じで、例えばTOKYO MXだとMX1とMX2が混ざったファイルができる。(通常はMX1かMX2を指定して「指定サービス」の録画をすることになるとは思う。)
これまでは、こうしたファイルに対してtsreplaceで置き換えをすると、MX1だけ置き換えて、MX2はそのままだったので、サイズが十分圧縮できなかった。
今回の更新では、置き換える対象のサービスを選択できるようにして(-sで指定、MX1なら"-s 1st"、MX2なら"-s 2nd")、さらに置き換え対象外のサービスは削除するようにして(デフォルトでオン)、よりサイズを圧縮するようにしてみた。
また、意外とデータ放送が容量をとっている場合があるので、これを削除するオプションも追加してみた(--remove-typed、これはデフォルトはオフ)。
結果としては、こんな感じで、これまでと比べて、tsreplace 0.08では全サービス録画したファイルに対してもかなりサイズを圧縮できるようになったと思う。
ダウンロード>>
オプションについてはこちら。
オプション一覧>
- 使用するffmpegのモジュールをffmpeg 7.0ベースに更新。 (Windows版)
- 置き換え対象のサービス以外をdropするように変更。
- 処理対象のサービスを選択するオプションを追加。 (-s, --service)
- データ放送のパケットを削除するオプションを追加。 (--remove-typed)
全サービスを録画したtsに対する処理の強化。
録画の場合、両方のチャンネルが欲しいというケースはあまり考えにくいので、あまり全サービス録画することはないと思ってあまり真面目に対応していなかったけど、今回処理を追加してみた。
全サービス録画するとこんな感じで、例えばTOKYO MXだとMX1とMX2が混ざったファイルができる。(通常はMX1かMX2を指定して「指定サービス」の録画をすることになるとは思う。)
これまでは、こうしたファイルに対してtsreplaceで置き換えをすると、MX1だけ置き換えて、MX2はそのままだったので、サイズが十分圧縮できなかった。
今回の更新では、置き換える対象のサービスを選択できるようにして(-sで指定、MX1なら"-s 1st"、MX2なら"-s 2nd")、さらに置き換え対象外のサービスは削除するようにして(デフォルトでオン)、よりサイズを圧縮するようにしてみた。
また、意外とデータ放送が容量をとっている場合があるので、これを削除するオプションも追加してみた(--remove-typed、これはデフォルトはオフ)。
結果としては、こんな感じで、これまでと比べて、tsreplace 0.08では全サービス録画したファイルに対してもかなりサイズを圧縮できるようになったと思う。
ダウンロード>>
オプションについてはこちら。
オプション一覧>
tsreplace 0.07
tsreplace 0.06
tsreplace 0.05
H.264インタレ保持エンコードした場合の置き換えに対応。
これまで対応していなかったH.264インタレ保持エンコードした場合の置き換えに対応。
私自身はインタレは解除してしまう派だけど、使いたい人もいるかなということで対応。
使用例はこちらに記載したので、インタレ保持をしたい場合は確認してみてください。
ハードウェアエンコードしたい場合は、GPUによってはインタレ保持に非対応なので注意。
Intel QSV
PGモードの使えるQSVが必要(FFモードは非対応のはず)。
大雑把にいうとGeminilakeを除くRaptorlakeまでのIntel内蔵GPUになると思う。(Meteorlakeはおそらく非対応になりそう?)
NVIDIA NVENC
Pascal世代までのGPUと、Turing世代の一部(TU117)。製品でいうとGTX10xxまでと、GTX16xxの一部。
GTX16xxは対応(TU117)と非対応(TU116)が混ざっていたはず…。
ダウンロード>>
オプションについてはこちら。
オプション一覧>
これまで対応していなかったH.264インタレ保持エンコードした場合の置き換えに対応。
私自身はインタレは解除してしまう派だけど、使いたい人もいるかなということで対応。
使用例はこちらに記載したので、インタレ保持をしたい場合は確認してみてください。
ハードウェアエンコードしたい場合は、GPUによってはインタレ保持に非対応なので注意。
Intel QSV
PGモードの使えるQSVが必要(FFモードは非対応のはず)。
大雑把にいうとGeminilakeを除くRaptorlakeまでのIntel内蔵GPUになると思う。(Meteorlakeはおそらく非対応になりそう?)
NVIDIA NVENC
Pascal世代までのGPUと、Turing世代の一部(TU117)。製品でいうとGTX10xxまでと、GTX16xxの一部。
GTX16xxは対応(TU117)と非対応(TU116)が混ざっていたはず…。
ダウンロード>>
オプションについてはこちら。
オプション一覧>
tsreplace 0.02
tsの映像だけをQSV/NV/VCEEncやffmpeg等でエンコードしたH.264やHEVCに置き換えたtsを作成するツールをtsukumi様のご協力をいただきながら作りました。
字幕だけでなく、番組情報・時刻情報・文字スーパー・データ放送等をすべて残しつつ、映像部分を圧縮したtsに置き換えることができます。
※ 2023.07.31 21:55追記
tsreplace 0.02に更新しました。
ご指摘いだいた、tsreplace 0.01でdropが発生してしまっていた問題を修正しました。
問題箇所・修正方法もお教えいただき、ありがとうございました。
想定動作環境
Windows 10/11 (x86/x64)
Linux (Ubuntu 20.04/22.04 ほか) (x64)
使用方法
まず、オリジナルのtsをエンコードします。出力ファイルはmp4,mkv,ts等、timstampを保持できる形式にします(raw ES不可)。
のちに作る映像置き換えtsファイルのシークを円滑にするため、GOP長はデフォルトより短めのほうがよいと思います。
QSVEncC64.exe -i <入力tsファイル> [インタレ解除等他のオプション] --gop-len 60 -o <置き換え映像ファイル>
次にtsreplaceを使って、エンコードした映像に置き換えたtsを作成します。
tsreplace.exe -i <入力tsファイル> -r <置き換え映像ファイル> -o <出力tsファイル>
また、下記のようにエンコードしながら置き換えを行うこともできます。この場合、Powershellを使用するとPowershell側のパイプ渡しの問題でうまく動作しないため、コマンドプロンプトをご利用ください。
QSVEncC64.exe -i <入力tsファイル> [インタレ解除等他のオプション] --gop-len 60 --output-format mpegts -o - | tsreplace.exe -i <入力tsファイル> -r - -o <出力tsファイル>
その他のオプションについてはこちらを確認してください。
注意事項
自己責任で使用してください。本ソフトウェアを使用した結果について、責任は負いません。
制限事項
下記については、対応予定はありません。
・カット編集等の行われたtsおよび映像ファイルは、置き換え時の同期が困難なため非対応です。
・入力tsファイルの制限
- 188byte tsのみ対応しています。
- 解像度変更のあるtsについての動作は検証しません。
・置き換え映像ファイルの制限
- H.264/HEVCの置き換えのみ対応します。
- 置き換えファイルはmp4/mkv/ts等のtimestampを保持できるコンテナ入りの映像を想定しています。 raw ESでの動作は検証しません。
ダウンロード>>
オプションについてはこちら。
オプション一覧>
字幕だけでなく、番組情報・時刻情報・文字スーパー・データ放送等をすべて残しつつ、映像部分を圧縮したtsに置き換えることができます。
※ 2023.07.31 21:55追記
tsreplace 0.02に更新しました。
ご指摘いだいた、tsreplace 0.01でdropが発生してしまっていた問題を修正しました。
問題箇所・修正方法もお教えいただき、ありがとうございました。
想定動作環境
Windows 10/11 (x86/x64)
Linux (Ubuntu 20.04/22.04 ほか) (x64)
使用方法
まず、オリジナルのtsをエンコードします。出力ファイルはmp4,mkv,ts等、timstampを保持できる形式にします(raw ES不可)。
のちに作る映像置き換えtsファイルのシークを円滑にするため、GOP長はデフォルトより短めのほうがよいと思います。
QSVEncC64.exe -i <入力tsファイル> [インタレ解除等他のオプション] --gop-len 60 -o <置き換え映像ファイル>
次にtsreplaceを使って、エンコードした映像に置き換えたtsを作成します。
tsreplace.exe -i <入力tsファイル> -r <置き換え映像ファイル> -o <出力tsファイル>
また、下記のようにエンコードしながら置き換えを行うこともできます。この場合、Powershellを使用するとPowershell側のパイプ渡しの問題でうまく動作しないため、コマンドプロンプトをご利用ください。
QSVEncC64.exe -i <入力tsファイル> [インタレ解除等他のオプション] --gop-len 60 --output-format mpegts -o - | tsreplace.exe -i <入力tsファイル> -r - -o <出力tsファイル>
その他のオプションについてはこちらを確認してください。
注意事項
自己責任で使用してください。本ソフトウェアを使用した結果について、責任は負いません。
制限事項
下記については、対応予定はありません。
・カット編集等の行われたtsおよび映像ファイルは、置き換え時の同期が困難なため非対応です。
・入力tsファイルの制限
- 188byte tsのみ対応しています。
- 解像度変更のあるtsについての動作は検証しません。
・置き換え映像ファイルの制限
- H.264/HEVCの置き換えのみ対応します。
- 置き換えファイルはmp4/mkv/ts等のtimestampを保持できるコンテナ入りの映像を想定しています。 raw ESでの動作は検証しません。
ダウンロード>>
オプションについてはこちら。
オプション一覧>