Repository navigation
SmartCut v0.8.42
スマートレンダリング対応のカットツールです。**カット点にかかる部分 GOP だけを再エンコードし、残りはビット単位でそのままコピーします。**放送録画(MPEG-2 TS)から CM を落とす用途を主眼に置いています。
0.8.42 では、継ぎ目のエンコーダーに録画の色差の位置を渡すようにしました。SteveYu000 さんが #14 で測って提案してくださったものです。あわせて、46 回目の点検で見つかった不具合を直しています。
46 回目の点検では、重大な不具合は 1 件も見つかりませんでした。1.0 は、重大な不具合の無い点検が 2 回続いたら出すと決めています。今回がその 1 回目です。
修正を終えたソースでは、検査付きのビルドでテストスイート 34 本がすべて通り、パニックもありませんでした。AV1 のスイートの 1 項目は、今回の修正に合わせて期待する結果を改めています。GUI を操作するテストは、381 項目すべてが通りました。
ダウンロード
| ファイル | 対象 |
|---|---|
SmartCut_0.8.42_amd64.AppImage |
Linux x64。glibc 2.35 以上(Ubuntu 22.04 / Debian 12 / Fedora 36 以降)。FUSE が必要です |
SmartCut-0.8.42-linux-x86_64.tar.gz |
Linux x64 可搬版(193.4 MB)。展開して ./smartcut を実行します。中身は AppImage と同じ一式で、FUSE は不要です |
smartcut_0.8.42_amd64.deb |
Ubuntu 22.04 以降 / Debian 13 以降(29.8 MB)。GUI を smartcut、コマンドライン版を smartcut-cli としてインストールします |
SmartCut_0.8.42_x64-setup.exe |
Windows x64 インストーラ。WebView2 ランタイムが必要です。コマンドライン版の smartcut-cli.exe も同じフォルダーに入ります |
smartcut-portable-x64-0.8.42.zip |
Windows x64 可搬版。展開して smartcut.exe を実行します。コマンドライン版は smartcut-cli.exe です |
どの配布物にも FFmpeg を同梱しています。別途インストールは不要です。
継ぎ目の色差の位置
**継ぎ目を再エンコードするとき、録画に書かれた色差サンプルの位置をエンコーダーに渡します。**これまでは渡していませんでした。
| 録画 | 0.8.41 | 0.8.42 |
|---|---|---|
| 位置が 1 か 2 の AV1(libaom で書いたものなど)を .mp4 に切る | 選んだ範囲を丸ごと再エンコードしていました | 中ほどはコピーのまま残ります |
| 同じ AV1 を .mkv に切る | 継ぎ目だけ位置が 0 になり、コピーした部分と食い違っていました | コピーした部分と同じ位置を書きます |
| H.264・HEVC で、位置が左以外の録画(4K 衛星放送の録画など) | 継ぎ目のパラメータセットに位置が書かれていませんでした | コピーした部分と同じ位置を書きます |
H.264・HEVC で位置が左の録画と、位置の書かれていない録画は、これまでと同じ出力になります。通常の H.264 の放送録画や市販の Blu-ray がこれに当たります。MPEG-2・VC-1・VP9 は、位置にかかわらず出力が変わりません。
直した不具合
| 対象 | 以前の症状 |
|---|---|
| MPEG-1 の録画(.mpg、VCD) | 継ぎ目を再エンコードするカットが、「cannot open encoder」で止まっていました。少なくとも 0.8.40 から起きていました |
| 「継ぎ目の編集」ウィンドウの静止画(フレーム送り、シーク、停止したあとの画面) | 再生や出力と違うフレームを表示することがありました。25p の基準クリップに 29.97 fps のクリップをつないだ試験では、5 回の送りのうち 3 回で食い違いました。59.94p のクリップに 10 秒のディゾルブをかけた試験では、手前のクリップがずっと 1 フレーム遅れていました。多くの録画で、静止画の表示も速くなっています |
| 名前が「.m2ts」だけの出力 | 到着時刻が前へ戻ったまま残っていました |
カット結果が 0.8.41 と変わる場合
| 入力・操作 | 変わる点 |
|---|---|
| H.264・HEVC で、色差の位置が左以外の録画 | 継ぎ目の先頭のピクチャのバイトが変わります。試した 4K 衛星放送の録画では、継ぎ目 1 つにつき 36 バイト増えました。復号した映像は変わりません |
| 位置が 1 か 2 の AV1 | .mp4 では範囲を丸ごと再エンコードせず、中ほどをコピーします。.mkv では継ぎ目の位置がコピーした部分と揃います |
| MPEG-1 の録画を、継ぎ目の再エンコードを伴って切る | 0.8.41 では書けなかった出力が書けます |
| 名前が「.m2ts」だけの出力 | 到着時刻を付け直します |
Linux 版と Windows 版(wine)で、0.8.41 と同じ 6 種類のカットを比べました。放送の 1 区間を .ts・.mp4・.mkv にしたもの、2 区間、結合、レコーダーの .m2ts です。どれも .ts・.mp4・.m2ts はバイト単位で、.mkv はパケット単位で 0.8.41 と同じでした。
残っている問題
| 対象 | 症状 |
|---|---|
| 映像より音声が長い録画 | 正しく切れていても、--verify が OFF と表示します |
| 可変フレームレートの録画 | 隣り合うフレームで続けて k を押しても、印が 1 つにまとまることがあります |
| 時間単位が 10 MHz で B ピクチャを含む、可変フレームレートの .mp4 | 正しく切れていても、--verify が MISMATCH と表示することがあります |
| 大きな .m2ts | 到着時刻を付け直すあいだ、進行表示が止まって見えます |
| 「継ぎ目の編集」ウィンドウの再生 | レコーダーが BD-RE に書いた録画で、途中の継ぎ目をまたぐと、カットでは書かれないフレームが映ります。出力は正しいです |
ドキュメント
English
SmartCut is a smart-rendering cutter: only the partial GOPs at each cut point are re-encoded; everything else is copied bit for bit. It is built mainly for cutting the adverts out of broadcast recordings (MPEG-2 TS).
0.8.42 tells the seam encoder where the recording's chroma samples sit, a fix SteveYu000 measured and proposed in #14. It also carries the fixes from the forty-sixth review pass.
That pass found no serious bug at all. The rule agreed for 1.0 is two passes in a row with no serious bug, and this is the first of the two.
The final tree passed all 34 test suites on a checked build, with no panics; one check in the AV1 suite now expects what this fix does. The GUI suite passed all 381 of its checks.
Downloads
| File | For |
|---|---|
SmartCut_0.8.42_amd64.AppImage |
Linux x64, glibc 2.35 or newer (Ubuntu 22.04 / Debian 12 / Fedora 36 and later). Needs FUSE |
SmartCut-0.8.42-linux-x86_64.tar.gz |
Linux x64, portable (193.4 MB). Unpack and run ./smartcut. Same contents as the AppImage, no FUSE needed |
smartcut_0.8.42_amd64.deb |
Ubuntu 22.04 and later / Debian 13 and later (29.8 MB). Installs the GUI as smartcut and the command-line tool as smartcut-cli |
SmartCut_0.8.42_x64-setup.exe |
Windows x64 installer. Needs the WebView2 runtime. The command-line tool, smartcut-cli.exe, goes into the same folder |
smartcut-portable-x64-0.8.42.zip |
Windows x64, portable. Unzip and run smartcut.exe; the command-line tool is smartcut-cli.exe |
Every download bundles FFmpeg; nothing else needs installing.
Chroma location at the seams
The seam encoder is now told where the recording's chroma samples sit, so a re-encoded seam states the same position as the pictures around it wherever its encoder can write one. Until now the encoder was never told.
| Recording | 0.8.41 | 0.8.42 |
|---|---|---|
| AV1 with position 1 or 2 (from libaom, for instance), cut to .mp4 | The whole selection was re-encoded | The copied middle is kept |
| The same AV1, cut to .mkv | The seams said 0 and disagreed with the copied pictures | The seams state the position the copied pictures do |
| H.264 or HEVC stating a position other than left (4K satellite broadcast recordings, for one) | The seams' parameter sets left the position out | The seams state the position the copied pictures do |
H.264 and HEVC recordings that state left, or nothing, cut exactly as before: ordinary H.264 broadcasts and pressed Blu-rays among them. MPEG-2, VC-1 and VP9 cut as before whatever they state.
Bugs fixed
| Where | What happened |
|---|---|
| MPEG-1 recordings (.mpg, VCD) | Any cut with a re-encoded seam stopped at "cannot open encoder", as it had since 0.8.40 at least |
| Stills in the “Between the clips” window (stepping, scrubbing, the picture after stopping) | Could show a different picture from playback and from the output. A 29.97 fps clip after a 25p master disagreed on three steps in five; with a 10 second dissolve on 59.94p clips, the outgoing clip stayed a picture late throughout. On most recordings the stills also come up faster |
| An output named just ".m2ts" | Kept arrival times that step backwards |
When a cut differs from 0.8.41
| Input or operation | What changes |
|---|---|
| H.264 or HEVC stating a chroma position other than left | The bytes of each seam's first picture: 36 more per seam on the 4K satellite recording tried. The pictures decode the same |
| AV1 with position 1 or 2 | In .mp4 the middle is copied instead of the whole selection being re-encoded; in .mkv the seams' position now matches the copy |
| An MPEG-1 cut with a re-encoded seam | Written now; 0.8.41 could not write it |
| An output named just ".m2ts" | Its arrival times are rewritten |
The release builds were compared with 0.8.41's on the same six cuts (one broadcast range to .ts, .mp4 and .mkv, two ranges, a join, and a recorder .m2ts), on Linux and on Windows under wine: the .ts, .mp4 and .m2ts outputs are byte-identical and the .mkv packet-identical.
Known issues
| Where | What happens |
|---|---|
| A recording whose sound outlasts its pictures | --verify says OFF even on a correct cut |
| A variable-frame-rate recording | k pressed on two neighbouring pictures can leave a single mark |
| A variable-frame-rate .mp4 with a 10 MHz timescale and B pictures | --verify can say MISMATCH even when the cut is right |
| A large .m2ts | The progress display stands still while the arrival times are rewritten |
| Playback in the “Between the clips” window | Across a seam inside a BD-RE recorder recording it can show a picture the cut does not write. The output is right |