Merge branch 'master' of http://172.20.20.19:3000/ft/skyscraper8
All checks were successful
🚀 Pack skyscraper8 / make-zip (push) Successful in 1m36s

This commit is contained in:
feyris-tan 2025-10-12 22:04:23 +02:00
commit 3bdf478a81

View File

@ -5,6 +5,8 @@
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{xcolor}
\usepackage{pifont,mdframed}
\usepackage{geometry}
\geometry{
@ -33,6 +35,13 @@
\texttt{\textcolor{blue}{#1}}%
}
\newenvironment{warning}
{\par\begin{mdframed}[linewidth=2pt,linecolor=red]%
\begin{list}{}{\leftmargin=1cm
\labelwidth=\leftmargin}\item[\Large\ding{43}]\textbf{IMPORTANT:}}
{\end{list}\end{mdframed}\par}
\begin{document}
\maketitle
@ -55,6 +64,7 @@ This is the niche gap skyscraper8 intents to cover: Extracting files transmitted
\section{How to get TS into skyscraper8}
skyscraper8 is a command-line operated tool. A graphical user interface is planned, but not yet fully developed. \\
This means that you have to use the command-line interpreter of your operating system to use skyscraper8. On Windows, both cmd.exe and PowerShell are known to work well.
On Linux and macOS, any halfway recent shell should be fine.
\subsection{Using a StreamReader compatible tuner}
\textbf{This is the preferred way} and applies to tuners like the popular TBS5927 or TBS6903x.
@ -64,6 +74,22 @@ This means that you have to use the command-line interpreter of your operating s
.\skyscraper8.exe cscan tcp://127.0.0.1:6969
\end{verbatim}
\label{sec:gswarning}
\begin{warning}
If you're planning to work with GS, make sure to disable StreamReader.dll's internal deencapsulator. You can do this by keeping the semicolon in StreamReader.ini like this
\begin{verbatim}
;FrameMode=1
\end{verbatim}
or set it to 0 like this:
\begin{verbatim}
FrameMode=0
\end{verbatim}
Why is that? While StreamReader.dll's Deencapsulation works correctly in theory, it does not seem to check whether an encapsulated packet actually contains valid MPEG-II packets and will happily try to deencapsulate all other packets as well, causing a lot of Packets with invalid data to appear in the outputted TS.
\end{warning}
\subsection{Using a BDA compatible tuner}
Use TSDuck's \codeword{tsp} and use the \codeword{dvb} input plugin and the \codeword{ip} output plugin.
\\ TODO: Talk about TSDuck here.
@ -137,13 +163,14 @@ If you are using Microsoft Windows, you can also DragnDrop a TS file onto
\item Descramble encrypted DOCSIS\footnote{Data-Over-Cable Service Interface Specifications} Traffic. While skyscraper8 does understand DOCSIS traffic and is perfectly capable of sniffing packets from it using tuners like the TBS-6281 SE, it will drop any scrambled packets - meaning those that have the DOCSIS privacy extension enabled.
\item Do a professional grade analysis of a TS. There are many intricacies in broadcasting systems which are out of scope for a simple file extractor developed by a mere hobbyist. If you're looking for a professional grade analyzing tool, I'd recommend you to check out the tools included in VMA Video Analyzer, Dektec's StreamXpert, GkWare's StreamGuru, or the \codeword{analyze} plugin of TSDuck.
\item Handle MPEG-DASH streams. Currently, there are two known video formats used in DVB-NIP: HLS and MPEG-DASH. While skyscraper8 is able to extract segments of both types from a TS, I do not know of an easy way to playback MPEG-DASH formatted streams. HLS on the other hand is trivial.
\item Repair broken GS. When using a non STiD135-based tuner to tune to a GS, the framing gets broken in extremely weird ways. Also, when using StreamReader.dll to tune to a GS with a STiD135 - it is imperative to disable to StreamReader.dll's deencapsulator. It often breaks the framing as well. See \hyperref[sec:gswarning]{the notice about GS in Section 2.1}
\end{itemize}
\section{How skyscraper8 was made}
skyscraper8 is developed in the C\# programming language, using Microsoft Visual Studio 2022. Therefore it requires a Microsoft .NET runtime, which is included in Microsoft Windows and freely available for most Linux distributions and Apple's macOS.
The .NET assembly of skyscraper8 is not obfuscated or protected in any way. This is on purpose. If you want to study how skyscraper8 works under the hood, I hereby allow you to use tools like RedGate's Reflector or JetBrains' dotPeek to inspect the skyscraper8.dll file. Of course you can also acquire the source code from my Gitea instance.\footnote{\url{https://gitea.yo3explorer.moe/ft/skyscraper8}}
The .NET assembly of skyscraper8 is not obfuscated or protected in any way. This is on purpose. If you want to study how skyscraper8 works under the hood, I hereby allow you to use tools like RedGate's Reflector or JetBrains' dotPeek to inspect the skyscraper8.dll file. Of course you can also acquire the plain source code from my Gitea instance.\footnote{\url{https://gitea.yo3explorer.moe/ft/skyscraper8}}
This document was typeset in \LaTeX{}, using the TeX Live distribution, and while I wrote it myself, I did use GPT-5 for proofreading. The proofreading of this document is the only part of skyscraper8 for which an LLM was used. No part of the actual skyscraper8 codebase itself was written by an LLM.
This document was typeset in \LaTeX{}, using the TeX Live distribution, and while I wrote it myself, I did use GPT-5 for proofreading the initial version of this document. The proofreading of this document is the only part of skyscraper8 for which an LLM was used. No part of the actual skyscraper8 codebase itself was written by an LLM.
\end{document}