Merge pull request #24 from justdan96/enhancement-docker-build
The Docker container is complete, list of changes: * Updated instructions in README for building tsMuxer in the Docker container. * Updated build scripts accordingly. * Added small section on testing to the README
This commit is contained in:
commit
9203e86242
73
README.md
73
README.md
@ -59,15 +59,13 @@ The following is a list of changes that will need to be made to the original sou
|
||||
|
||||
* swapping custom includes from libmediation to their standard library equivalents
|
||||
* the code uses my_htonl, my_ntohll, etc - these can be swapped for the standard library versions
|
||||
* the program currently only compiles 32-bit executables, even on 64-bit systems, a multi-architecture approach is needed
|
||||
* consider making static executables for Linux, to make the program more portable
|
||||
* build for Windows requires Visual Studio 2017 and compiling through GUI - we need to create a Makefile equivalent
|
||||
* create a multi-platform build pipeline, maybe using dockcross or if that doesn't work creating a custom WinPE image just for compiling on Windows
|
||||
* Windows builds require extra files to be downloaded and manually copied into place in order for the builds to succeed - we need to work on that
|
||||
* the program doesn't support MPEG-4 ASP, even though MPEG-4 ASP is defined in the TS specification
|
||||
* no Opus audio support
|
||||
* [several](https://forum.doom9.org/showthread.php?p=1880216#post1880216) [muxing](https://forum.doom9.org/showthread.php?p=1881372#post1881372) [bugs](https://forum.doom9.org/showthread.php?p=1881509#post1881509) when muxing a HEVC/UHD stream - results in an out-of-sync stream
|
||||
* has issues with 24-bit DTS Express
|
||||
* issues with the 3D plane lists when there are mismatches between the MPLS and M2TS
|
||||
* a [bug](https://forum.doom9.org/showpost.php?p=1888650&postcount=74) with unsynchronised AV in HEVC files because the coded picture buffer is not large enough
|
||||
* a [bug](https://forum.doom9.org/showthread.php?p=1880216#post1880216) with UHD HEVC where the [wrong stream type is used](https://forum.doom9.org/showpost.php?p=1888746&postcount=75)
|
||||
|
||||
## Contributing
|
||||
|
||||
@ -92,6 +90,43 @@ You can report issues directly on Github, that would be a really useful contribu
|
||||
|
||||
### Building
|
||||
|
||||
#### Docker (All Platforms)
|
||||
|
||||
You can use our [Docker container](https://github.com/justdan96/tsmuxer_build) to build tsMuxer for your chosen platform. To build the GUI you will need to follow the instructions specifically for your platform.
|
||||
|
||||
To create the builds using the Docker container, follow the steps below:
|
||||
|
||||
1. Pull `justdan96/tsmuxer_build` from the Docker repository:
|
||||
```
|
||||
docker pull justdan96/tsmuxer_build
|
||||
```
|
||||
|
||||
Or build `justdan96/tsmuxer_build` from source:
|
||||
```
|
||||
git clone https://github.com/justdan96/tsmuxer_build.git
|
||||
cd tsmuxer_build
|
||||
docker build -t justdan96/tsmuxer_build .
|
||||
```
|
||||
|
||||
2. Browse to the tsMuxer repository and run one of the following commands:
|
||||
|
||||
*Linux*
|
||||
```
|
||||
docker run -it --rm -v $(pwd):/workdir -w="/workdir" justdan96/tsmuxer_build bash -c ". rebuild_linux_docker.sh"
|
||||
```
|
||||
|
||||
*Windows*
|
||||
```
|
||||
docker run -it --rm -v $(pwd):/workdir -w="/workdir" justdan96/tsmuxer_build bash -c ". rebuild_mxe_docker.sh"
|
||||
```
|
||||
|
||||
*OSX*
|
||||
```
|
||||
docker run -it --rm -v $(pwd):/workdir -w="/workdir" justdan96/tsmuxer_build bash -c ". rebuild_osxcross_docker.sh"
|
||||
```
|
||||
|
||||
The executable binary will be saved to the "\bin" folder.
|
||||
|
||||
#### Linux
|
||||
|
||||
For these examples we have successfully used Ubuntu 19 64-bit and Debian 10 64-bit.
|
||||
@ -391,6 +426,34 @@ Or run the following to build the GUI as well:
|
||||
./rebuild_osxcross_with_gui.sh
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
In absence of a full test suite currently we are creating some basic tests that can be performed.
|
||||
|
||||
The first test is a simple MKV to M2TS test with the first 2 minutes of Big Buck Bunny.
|
||||
|
||||
You need the file bbb-2mins.mkv and to either use the M2TS option in tsMuxerGUI or use the following meta file:
|
||||
|
||||
```
|
||||
MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --vbv-len=500
|
||||
V_MPEG-2, "bbb-2mins.mkv", track=1, lang=und
|
||||
A_AC3, "bbb-2mins.mkv", track=2, lang=und
|
||||
```
|
||||
|
||||
The MD5 sums of the original file and the output file should be:
|
||||
```
|
||||
a239a724cba1381a5956b50cb8b46754 bbb-2mins.mkv
|
||||
62342b056d37e44fae4e48161d6208bf bbb-2mins-from-linux-meta.m2ts
|
||||
```
|
||||
|
||||
We will have also done the same with the test file [Life Untouched](https://uhdsample.com/6-life-untouched-4k-demo-60fps-hdr10.html). Results of the MD5 sums for the original and output file are below:
|
||||
```
|
||||
f2db8f6647f4f2a0b2417aed296fee73 Life Untouched 4K Demo.mp4
|
||||
aba9ee3a3211cd09ba4833a610faff22 Life Untouched 4K Demo.m2ts
|
||||
```
|
||||
|
||||
We need more sample files with 3D and multiple subtitle tracks if possible so if you have any ways of testing these files (particularly in relation to the bugs in the TODO section) please let us know?
|
||||
|
||||
## Financing
|
||||
|
||||
We are not currently accepting any kind of donations and we do not have a bounty program.
|
||||
|
0
bin/.gitkeep
Normal file
0
bin/.gitkeep
Normal file
@ -3,3 +3,6 @@ mkdir build
|
||||
cd build
|
||||
cmake ../ -G Ninja
|
||||
ninja
|
||||
cp tsMuxer/tsmuxer ../bin/tsMuxeR
|
||||
cd ..
|
||||
rm -rf build
|
||||
|
8
rebuild_linux_docker.sh
Executable file
8
rebuild_linux_docker.sh
Executable file
@ -0,0 +1,8 @@
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DTSMUXER_STATIC_BUILD=ON ../
|
||||
make
|
||||
cp tsMuxer/tsmuxer ../bin/tsMuxeR
|
||||
cd ..
|
||||
rm -rf build
|
@ -6,3 +6,6 @@ export CCACHE_DISABLE=1
|
||||
export MXE_USE_CCACHE=
|
||||
x86_64-w64-mingw32.static-cmake ../
|
||||
make
|
||||
cp tsMuxer/tsmuxer.exe ../bin/tsMuxeR.exe
|
||||
cd ..
|
||||
rm -rf build
|
||||
|
11
rebuild_mxe_docker.sh
Executable file
11
rebuild_mxe_docker.sh
Executable file
@ -0,0 +1,11 @@
|
||||
export PATH=/usr/lib/mxe/usr/bin:$PATH
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
export CCACHE_DISABLE=1
|
||||
export MXE_USE_CCACHE=
|
||||
x86_64-w64-mingw32.static-cmake ../
|
||||
make
|
||||
cp tsMuxer/tsmuxer.exe ../bin/tsMuxeR.exe
|
||||
cd ..
|
||||
rm -rf build
|
@ -6,3 +6,7 @@ export CCACHE_DISABLE=1
|
||||
export MXE_USE_CCACHE=
|
||||
x86_64-w64-mingw32.static-cmake ../ -DTSMUXER_GUI=ON
|
||||
make
|
||||
cp tsMuxer/tsmuxer.exe ../bin/tsMuxeR.exe
|
||||
cp tsMuxer/tsmuxergui.exe ../bin/tsMuxerGUI.exe
|
||||
cd ..
|
||||
rm -rf build
|
||||
|
@ -7,3 +7,6 @@ mkdir build
|
||||
cd build
|
||||
x86_64-apple-darwin14-cmake ../ -DCMAKE_TOOLCHAIN_FILE=/usr/lib/osxcross/toolchain.cmake
|
||||
make
|
||||
cp tsMuxer/tsmuxer ../bin/tsMuxeR
|
||||
cd ..
|
||||
rm -rf build
|
||||
|
12
rebuild_osxcross_docker.sh
Executable file
12
rebuild_osxcross_docker.sh
Executable file
@ -0,0 +1,12 @@
|
||||
export PATH=/usr/lib/osxcross/bin:$PATH
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.10
|
||||
export PKG_CONFIG=/usr/lib/osxcross/bin/x86_64-apple-darwin14-pkg-config
|
||||
export OSXCROSS_MP_INC=1
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
x86_64-apple-darwin14-cmake ../ -DCMAKE_TOOLCHAIN_FILE=/usr/lib/osxcross/toolchain.cmake
|
||||
make
|
||||
cp tsMuxer/tsmuxer ../bin/tsMuxeR
|
||||
cd ..
|
||||
rm -rf build
|
Loading…
x
Reference in New Issue
Block a user