Move the contents of the "about" tab to an external file and other GUI improvements (#221)

The contents of the UI tab were saved as inline HTML in the UI file for TsMuxerWindow. Making them translatable would've exported the content to .ts files, which means that translators would have to put up with not only HTML, but HTML with XML escaping applied into it.
Moving the content to an external file seems like a best approach in this case. The content of the file is loaded in the appropriate language when switching languages. The HTML files themselves are included as resources at build time.
master
Daniel Kamil Kozar 2020-03-01 19:32:53 +01:00 committed by GitHub
parent 2c60a1976a
commit ce05c5d4d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 468 additions and 390 deletions

View File

@ -7,5 +7,6 @@
<file>sounds/fail.wav</file>
<file>images/icon.png</file>
<file>images/btn_donate.png</file>
<file alias="about_en.html">translations/about_en.html</file>
</qresource>
</RCC>

View File

@ -0,0 +1,64 @@
<!-- translators : please *don't* change the formatting of this file, as Qt is very sensitive about it
and the translated file will most definitely be rendered differently if you choose to reindent it.
also, remember to save the file as UTF-8. -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><title>tsMuxeR</title><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/justdan96/tsMuxer"><span style=" font-size:8pt; font-weight:600; text-decoration: underline; color:#0000ff;">tsMuxeR</span></a><span style=" font-size:8pt;"> the software utility to create TS and M2TS files for IP broadcasting as well as for viewing at hardware video players (i.e., Dune HD Ultra, Sony Playstation3, Samsung Smart TV and others). </span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">tsMuxeR is open source. </span></p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Supported incoming formats: </span></p>
<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;">
<li style=" font-size:8pt;" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TS; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">M2TS; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">SIFF;</li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MOV;</li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MP4;</li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MKV;</li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Blu-ray; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Demux option. </li></ul>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Supported videocodecs: </span></p>
<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;">
<li style=" font-size:8pt;" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">H.264/MVC </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">H.265/HEVC; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Microsoft VC-1; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MPEG-2. </li></ul>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Supported audiocodecs: </span></p>
<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;">
<li style=" font-size:8pt;" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">AAC; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">AC3 / E-AC3(DD+); </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dolby True HD (for streams with AC3 core only); </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">DTS/ DTS-HD; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">LPCM. </li></ul>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Supported subtitle types: </span></p>
<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;">
<li style=" font-size:8pt;" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">M2TS Presentation graphic stream. </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">SRT text subtitles </li></ul>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Supported containers and formats: </span></p>
<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;">
<li style=" font-size:8pt;" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Elementary stream; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Transport stream TS and M2TS; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program stream EVO/VOB/MPG; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Matroska MKV/MKA. </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MP4/MOV. </li></ul>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Main features: </span></p>
<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;">
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3D Blu-ray support;</li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">UHD, HDR10, HDR10+ and Dolby Vision support; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Automatic or manual fps adjustment while mixing; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Level changing as well as SEI, SPS/PPS elements and NAL unit delimiter cycle insertion while mixing H.264; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Audio tracks and subtitles time shifting; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to extract DTS core from DTS-HD; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to extract AC3 core from True-HD; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to join files; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to adjust fps for subtitles; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to convert LPCM streams into WAVE and vice versa; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Track language information injection into blu-ray structure and TS header; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to cut source files; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to split output file; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to detect audio delay for TS/M2TS/MPG/VOB/EVO sources; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to remove pulldown info from stream; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to open Blu-ray playlist (MPLS) files; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ability to convert SRT subtitles to PGS; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Tags for SRT subtitles support - tags for changing font, color, size, etc.; tag's syntax is similar to HTML; </li>
<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">United cross-platform GUI - Windows, Linux, MacOS. </li></ul></body></html>

View File

@ -106,6 +106,7 @@
<location filename="../tsmuxerwindow.ui" line="325"/>
<location filename="../tsmuxerwindow.ui" line="629"/>
<location filename="../tsmuxerwindow.ui" line="810"/>
<location filename="../tsmuxerwindow.cpp" line="50"/>
<source>General track options</source>
<translation type="unfinished"></translation>
</message>
@ -196,6 +197,7 @@
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="767"/>
<location filename="../tsmuxerwindow.cpp" line="52"/>
<source>Demux options</source>
<translation type="unfinished"></translation>
</message>
@ -326,625 +328,650 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1257"/>
<location filename="../tsmuxerwindow.ui" line="1247"/>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1263"/>
<location filename="../tsmuxerwindow.ui" line="1253"/>
<source>Add blank playlist for cropped video</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1291"/>
<location filename="../tsmuxerwindow.ui" line="1281"/>
<source>Blank playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1329"/>
<location filename="../tsmuxerwindow.ui" line="1319"/>
<source>Force BD-ROM V3 format</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1341"/>
<location filename="../tsmuxerwindow.ui" line="1331"/>
<source>First MPLS file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1364"/>
<location filename="../tsmuxerwindow.ui" line="1354"/>
<source>First M2TS file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1394"/>
<location filename="../tsmuxerwindow.ui" line="1384"/>
<source>Start mux time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1420"/>
<location filename="../tsmuxerwindow.ui" line="1410"/>
<source>45 Khz clock:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1445"/>
<location filename="../tsmuxerwindow.ui" line="1435"/>
<source>3D settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1451"/>
<location filename="../tsmuxerwindow.ui" line="1441"/>
<source>Use base video stream for right eye</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1467"/>
<location filename="../tsmuxerwindow.ui" line="1457"/>
<source>PIP settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1475"/>
<location filename="../tsmuxerwindow.ui" line="1465"/>
<source>Corner</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1486"/>
<location filename="../tsmuxerwindow.ui" line="1476"/>
<source>Top Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1491"/>
<location filename="../tsmuxerwindow.ui" line="1481"/>
<source>Top Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1496"/>
<location filename="../tsmuxerwindow.ui" line="1486"/>
<source>Bottom Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1501"/>
<location filename="../tsmuxerwindow.ui" line="1491"/>
<source>Bottom Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1509"/>
<location filename="../tsmuxerwindow.ui" line="1499"/>
<source>Horizontal offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1526"/>
<location filename="../tsmuxerwindow.ui" line="1516"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1537"/>
<location filename="../tsmuxerwindow.ui" line="1527"/>
<source>Not scaled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1542"/>
<location filename="../tsmuxerwindow.ui" line="1532"/>
<source>Half (x 1/2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1547"/>
<location filename="../tsmuxerwindow.ui" line="1537"/>
<source>Quarter (x 1/4)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1552"/>
<location filename="../tsmuxerwindow.ui" line="1542"/>
<source>One and a Half (x 1.5)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1557"/>
<location filename="../tsmuxerwindow.ui" line="1547"/>
<source>Full Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1578"/>
<location filename="../tsmuxerwindow.ui" line="1568"/>
<source>Vertical offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1600"/>
<location filename="../tsmuxerwindow.ui" line="1590"/>
<source>Default tracks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1606"/>
<location filename="../tsmuxerwindow.ui" line="1596"/>
<source>Subtitle</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1616"/>
<location filename="../tsmuxerwindow.ui" line="1606"/>
<source>When checked, only subtitles marked as &quot;forced&quot; in the subtitle stream will appear.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1619"/>
<location filename="../tsmuxerwindow.ui" line="1609"/>
<source>Forced only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1626"/>
<location filename="../tsmuxerwindow.ui" line="1616"/>
<source>Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1666"/>
<location filename="../tsmuxerwindow.ui" line="1656"/>
<source>Split &amp;&amp; cut</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1681"/>
<location filename="../tsmuxerwindow.ui" line="1671"/>
<source>Splitting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1692"/>
<location filename="../tsmuxerwindow.ui" line="1682"/>
<source>No split</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1702"/>
<location filename="../tsmuxerwindow.ui" line="1692"/>
<source>Split by duration every</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1728"/>
<location filename="../tsmuxerwindow.ui" line="1718"/>
<source>sec</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1735"/>
<location filename="../tsmuxerwindow.ui" line="1725"/>
<source>Split by size every</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1768"/>
<location filename="../tsmuxerwindow.ui" line="1758"/>
<source>KB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1773"/>
<location filename="../tsmuxerwindow.ui" line="1763"/>
<source>KiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1778"/>
<location filename="../tsmuxerwindow.ui" line="1768"/>
<source>MB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1783"/>
<location filename="../tsmuxerwindow.ui" line="1773"/>
<source>MiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1788"/>
<location filename="../tsmuxerwindow.ui" line="1778"/>
<source>GB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1793"/>
<location filename="../tsmuxerwindow.ui" line="1783"/>
<source>GiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1825"/>
<location filename="../tsmuxerwindow.ui" line="1815"/>
<source>Cutting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1836"/>
<location filename="../tsmuxerwindow.ui" line="1826"/>
<source>Enable cutting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1847"/>
<location filename="../tsmuxerwindow.ui" line="1837"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1857"/>
<location filename="../tsmuxerwindow.ui" line="1847"/>
<source>End</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1937"/>
<location filename="../tsmuxerwindow.ui" line="1927"/>
<source>Subtitles</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1952"/>
<location filename="../tsmuxerwindow.ui" line="1942"/>
<source> Default text based subtitles font: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1976"/>
<location filename="../tsmuxerwindow.ui" line="1981"/>
<location filename="../tsmuxerwindow.ui" line="1986"/>
<location filename="../tsmuxerwindow.ui" line="1991"/>
<location filename="../tsmuxerwindow.ui" line="1996"/>
<location filename="../tsmuxerwindow.ui" line="1975"/>
<location filename="../tsmuxerwindow.ui" line="1980"/>
<location filename="../tsmuxerwindow.ui" line="1985"/>
<location filename="../tsmuxerwindow.ui" line="1990"/>
<location filename="../tsmuxerwindow.ui" line="1995"/>
<source>New Row</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2001"/>
<location filename="../tsmuxerwindow.ui" line="2006"/>
<location filename="../tsmuxerwindow.ui" line="2000"/>
<location filename="../tsmuxerwindow.ui" line="2005"/>
<source>New Column</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2011"/>
<location filename="../tsmuxerwindow.ui" line="2010"/>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2021"/>
<location filename="../tsmuxerwindow.ui" line="2020"/>
<source>Size:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2026"/>
<location filename="../tsmuxerwindow.ui" line="2025"/>
<source>65</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2031"/>
<location filename="../tsmuxerwindow.ui" line="2030"/>
<source>Color:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2036"/>
<location filename="../tsmuxerwindow.ui" line="2035"/>
<source>0xffffffff</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2041"/>
<location filename="../tsmuxerwindow.ui" line="2040"/>
<source>Charset:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2046"/>
<location filename="../tsmuxerwindow.ui" line="2045"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2051"/>
<location filename="../tsmuxerwindow.ui" line="2050"/>
<source>Options:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2072"/>
<location filename="../tsmuxerwindow.ui" line="2071"/>
<source>Font</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2079"/>
<location filename="../tsmuxerwindow.ui" line="2078"/>
<source>Color</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2103"/>
<location filename="../tsmuxerwindow.ui" line="2102"/>
<source>Additional border, pixels:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2129"/>
<location filename="../tsmuxerwindow.ui" line="2128"/>
<source>line spacing:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2155"/>
<location filename="../tsmuxerwindow.ui" line="2154"/>
<source>Fade in/out animation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2166"/>
<location filename="../tsmuxerwindow.ui" line="2165"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2171"/>
<location filename="../tsmuxerwindow.ui" line="2170"/>
<source>Fast</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2176"/>
<location filename="../tsmuxerwindow.ui" line="2175"/>
<source>Medium</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2181"/>
<location filename="../tsmuxerwindow.ui" line="2180"/>
<source>Slow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2186"/>
<location filename="../tsmuxerwindow.ui" line="2185"/>
<source>Very slow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2222"/>
<location filename="../tsmuxerwindow.ui" line="2221"/>
<source> Vertical position: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2233"/>
<location filename="../tsmuxerwindow.ui" line="2232"/>
<source>Top of screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2267"/>
<location filename="../tsmuxerwindow.ui" line="2266"/>
<source>top offset, pixels:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2301"/>
<location filename="../tsmuxerwindow.ui" line="2473"/>
<location filename="../tsmuxerwindow.ui" line="2300"/>
<location filename="../tsmuxerwindow.ui" line="2472"/>
<source>Screen center</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2308"/>
<location filename="../tsmuxerwindow.ui" line="2307"/>
<source>Bottom of screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2342"/>
<location filename="../tsmuxerwindow.ui" line="2341"/>
<source>bottom offset, pixels:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2394"/>
<location filename="../tsmuxerwindow.ui" line="2393"/>
<source> Horizontal position: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2405"/>
<location filename="../tsmuxerwindow.ui" line="2404"/>
<source>Left of screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2439"/>
<location filename="../tsmuxerwindow.ui" line="2438"/>
<source>left offset, pixels:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2486"/>
<location filename="../tsmuxerwindow.ui" line="2485"/>
<source>Right of screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2523"/>
<location filename="../tsmuxerwindow.ui" line="2522"/>
<source>right offset, pixels:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2588"/>
<location filename="../tsmuxerwindow.ui" line="2587"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2693"/>
<location filename="../tsmuxerwindow.ui" line="2639"/>
<source>Output</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2707"/>
<location filename="../tsmuxerwindow.ui" line="2653"/>
<source>TS muxing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2723"/>
<location filename="../tsmuxerwindow.ui" line="2669"/>
<source>M2TS muxing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2730"/>
<location filename="../tsmuxerwindow.ui" line="2676"/>
<source>Blu-ray ISO</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2743"/>
<location filename="../tsmuxerwindow.ui" line="2689"/>
<source>Blu-ray folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2750"/>
<location filename="../tsmuxerwindow.ui" line="2696"/>
<source>AVCHD folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2763"/>
<location filename="../tsmuxerwindow.cpp" line="1403"/>
<location filename="../tsmuxerwindow.ui" line="2709"/>
<location filename="../tsmuxerwindow.cpp" line="1414"/>
<source>Demux</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2787"/>
<location filename="../tsmuxerwindow.ui" line="2733"/>
<source>Disk label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2797"/>
<location filename="../tsmuxerwindow.cpp" line="2364"/>
<location filename="../tsmuxerwindow.ui" line="2743"/>
<location filename="../tsmuxerwindow.cpp" line="2379"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2823"/>
<location filename="../tsmuxerwindow.ui" line="2769"/>
<source>Browse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2847"/>
<location filename="../tsmuxerwindow.ui" line="2793"/>
<source>Meta file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2929"/>
<location filename="../tsmuxerwindow.cpp" line="2350"/>
<location filename="../tsmuxerwindow.ui" line="2862"/>
<location filename="../tsmuxerwindow.cpp" line="2365"/>
<source>Sta&amp;rt muxing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2948"/>
<location filename="../tsmuxerwindow.ui" line="2887"/>
<source>Save meta file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="534"/>
<location filename="../tsmuxerwindow.cpp" line="25"/>
<source>All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC (advanced audio coding) (*.aac);;AVC/MVC/H.264 elementary stream (*.avc *.mvc *.264 *.h264);;HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;Digital Theater System (*.dts);;Mpeg video elementary stream (*.mpv *.m1v *.m2v);;Mpeg audio elementary stream (*.mpa);;Transport Stream (*.ts);;BDAV Transport Stream (*.m2ts *.mts *.ssif);;Program Stream (*.mpg *.mpeg *.vob *.evo);;Matroska audio/video files (*.mkv *.mka *.mks);;MP4 audio/video files (*.mp4 *.m4a *.m4v);;Quick time audio/video files (*.mov);;Blu-ray play list (*.mpls *.mpl);;Blu-ray PGS subtitles (*.sup);;Text subtitles (*.srt);;WAVE - Uncompressed PCM audio (*.wav *.w64);;RAW LPCM Stream (*.pcm);;All files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="48"/>
<source>tsMuxeR project file (*.meta);;All files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="54"/>
<source>Transport stream (*.ts);;all files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="56"/>
<source>BDAV Transport Stream (*.m2ts);;all files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="58"/>
<source>Disk image (*.iso);;all files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="545"/>
<source>Not supported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="600"/>
<location filename="../tsmuxerwindow.cpp" line="1117"/>
<location filename="../tsmuxerwindow.cpp" line="611"/>
<location filename="../tsmuxerwindow.cpp" line="1128"/>
<source>Unsupported format</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="601"/>
<location filename="../tsmuxerwindow.cpp" line="612"/>
<source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="871"/>
<location filename="../tsmuxerwindow.cpp" line="882"/>
<source>Add media file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="908"/>
<location filename="../tsmuxerwindow.cpp" line="919"/>
<source>File already exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="909"/>
<location filename="../tsmuxerwindow.cpp" line="920"/>
<source>File &quot;%1&quot; already exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1122"/>
<location filename="../tsmuxerwindow.cpp" line="1133"/>
<source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1133"/>
<location filename="../tsmuxerwindow.cpp" line="1144"/>
<source>Some tracks not recognized. This tracks was ignored. File name: &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1403"/>
<location filename="../tsmuxerwindow.cpp" line="1414"/>
<source>Mux</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1422"/>
<location filename="../tsmuxerwindow.cpp" line="1433"/>
<source>tsMuxeR error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1426"/>
<location filename="../tsmuxerwindow.cpp" line="1437"/>
<source>tsMuxeR not found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1444"/>
<location filename="../tsmuxerwindow.cpp" line="1455"/>
<source>Can&apos;t execute tsMuxeR!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2204"/>
<location filename="../tsmuxerwindow.cpp" line="2205"/>
<location filename="../tsmuxerwindow.cpp" line="2219"/>
<location filename="../tsmuxerwindow.cpp" line="2220"/>
<source>No track selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2212"/>
<location filename="../tsmuxerwindow.cpp" line="2227"/>
<source>Append media file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2249"/>
<location filename="../tsmuxerwindow.cpp" line="2264"/>
<source>Invalid file extension</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2250"/>
<location filename="../tsmuxerwindow.cpp" line="2265"/>
<source>Appended file must have same file extension.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2348"/>
<location filename="../tsmuxerwindow.cpp" line="2363"/>
<source>Sta&amp;rt demuxing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2360"/>
<location filename="../tsmuxerwindow.cpp" line="2375"/>
<source>Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2450"/>
<location filename="../tsmuxerwindow.cpp" line="2465"/>
<source>Select file for muxing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2472"/>
<location filename="../tsmuxerwindow.cpp" line="2488"/>
<location filename="../tsmuxerwindow.cpp" line="2487"/>
<location filename="../tsmuxerwindow.cpp" line="2503"/>
<source>Invalid file name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2473"/>
<location filename="../tsmuxerwindow.cpp" line="2488"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2489"/>
<location filename="../tsmuxerwindow.cpp" line="2504"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2503"/>
<location filename="../tsmuxerwindow.cpp" line="2518"/>
<source>file</source>
<extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2503"/>
<location filename="../tsmuxerwindow.cpp" line="2518"/>
<source>directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2505"/>
<location filename="../tsmuxerwindow.cpp" line="2520"/>
<source>Overwrite existing %1?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2506"/>
<location filename="../tsmuxerwindow.cpp" line="2521"/>
<source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2523"/>
<location filename="../tsmuxerwindow.cpp" line="2538"/>
<source>Muxing in progress</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2523"/>
<location filename="../tsmuxerwindow.cpp" line="2538"/>
<source>Demuxing in progress</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2552"/>
<location filename="../tsmuxerwindow.cpp" line="2567"/>
<source>Can&apos;t create temporary meta file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2553"/>
<location filename="../tsmuxerwindow.cpp" line="2568"/>
<source>Can&apos;t create temporary meta file &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>

View File

@ -106,6 +106,7 @@
<location filename="../tsmuxerwindow.ui" line="325"/>
<location filename="../tsmuxerwindow.ui" line="629"/>
<location filename="../tsmuxerwindow.ui" line="810"/>
<location filename="../tsmuxerwindow.cpp" line="50"/>
<source>General track options</source>
<translation>Общие параметры дорожки</translation>
</message>
@ -196,6 +197,7 @@
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="767"/>
<location filename="../tsmuxerwindow.cpp" line="52"/>
<source>Demux options</source>
<translation>Параметры записи дорожек</translation>
</message>
@ -326,626 +328,651 @@
<translation>Главы:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1257"/>
<location filename="../tsmuxerwindow.ui" line="1247"/>
<source>Options</source>
<translation>Параметры</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1263"/>
<location filename="../tsmuxerwindow.ui" line="1253"/>
<source>Add blank playlist for cropped video</source>
<translation>Добавить пустой плэйлист</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1291"/>
<location filename="../tsmuxerwindow.ui" line="1281"/>
<source>Blank playlist</source>
<translation>Пустой плэйлист</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1329"/>
<location filename="../tsmuxerwindow.ui" line="1319"/>
<source>Force BD-ROM V3 format</source>
<translation>Задать 3 версию формата BD-ROM</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1341"/>
<location filename="../tsmuxerwindow.ui" line="1331"/>
<source>First MPLS file</source>
<translation>Первый файл MPLS</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1364"/>
<location filename="../tsmuxerwindow.ui" line="1354"/>
<source>First M2TS file</source>
<translation>Первый файл M2TS</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1394"/>
<location filename="../tsmuxerwindow.ui" line="1384"/>
<source>Start mux time</source>
<translation>Время начала записи</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1420"/>
<location filename="../tsmuxerwindow.ui" line="1410"/>
<source>45 Khz clock:</source>
<translation>1/45 милисекунды:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1445"/>
<location filename="../tsmuxerwindow.ui" line="1435"/>
<source>3D settings</source>
<translation>Настройки 3D</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1451"/>
<location filename="../tsmuxerwindow.ui" line="1441"/>
<source>Use base video stream for right eye</source>
<translation>Использовать основной видеопоток для правого глаза</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1467"/>
<location filename="../tsmuxerwindow.ui" line="1457"/>
<source>PIP settings</source>
<translation>Настройки PIP</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1475"/>
<location filename="../tsmuxerwindow.ui" line="1465"/>
<source>Corner</source>
<translation>Угол</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1486"/>
<location filename="../tsmuxerwindow.ui" line="1476"/>
<source>Top Left</source>
<translation>Верхний Левый</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1491"/>
<location filename="../tsmuxerwindow.ui" line="1481"/>
<source>Top Right</source>
<translation>Верхний Правый</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1496"/>
<location filename="../tsmuxerwindow.ui" line="1486"/>
<source>Bottom Right</source>
<translation>Нижний Правый</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1501"/>
<location filename="../tsmuxerwindow.ui" line="1491"/>
<source>Bottom Left</source>
<translation>Нижний Левый</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1509"/>
<location filename="../tsmuxerwindow.ui" line="1499"/>
<source>Horizontal offset</source>
<translation>Смещение по горизонтали</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1526"/>
<location filename="../tsmuxerwindow.ui" line="1516"/>
<source>Size</source>
<translation>Размер</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1537"/>
<location filename="../tsmuxerwindow.ui" line="1527"/>
<source>Not scaled</source>
<translation>Не маштабировать</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1542"/>
<location filename="../tsmuxerwindow.ui" line="1532"/>
<source>Half (x 1/2)</source>
<translation>Половина (x 1/2)</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1547"/>
<location filename="../tsmuxerwindow.ui" line="1537"/>
<source>Quarter (x 1/4)</source>
<translation>Четверть (x 1/4)</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1552"/>
<location filename="../tsmuxerwindow.ui" line="1542"/>
<source>One and a Half (x 1.5)</source>
<translation>Полтора (x 1.5)</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1557"/>
<location filename="../tsmuxerwindow.ui" line="1547"/>
<source>Full Screen</source>
<translation>На весь экран</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1578"/>
<location filename="../tsmuxerwindow.ui" line="1568"/>
<source>Vertical offset</source>
<translation>Смещение по вертикали</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1600"/>
<location filename="../tsmuxerwindow.ui" line="1590"/>
<source>Default tracks</source>
<translation>Дорожки по умолчанию</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1606"/>
<location filename="../tsmuxerwindow.ui" line="1596"/>
<source>Subtitle</source>
<translation>Субтитры</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1616"/>
<location filename="../tsmuxerwindow.ui" line="1606"/>
<source>When checked, only subtitles marked as &quot;forced&quot; in the subtitle stream will appear.</source>
<translation>Если установлен будут отображаться только субтитры, помеченные как &quot;принудительные&quot;.</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1619"/>
<location filename="../tsmuxerwindow.ui" line="1609"/>
<source>Forced only</source>
<translation>Только принудительные</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1626"/>
<location filename="../tsmuxerwindow.ui" line="1616"/>
<source>Audio</source>
<translation>Звук</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1666"/>
<location filename="../tsmuxerwindow.ui" line="1656"/>
<source>Split &amp;&amp; cut</source>
<translation>Нарезка &amp;&amp; обрезка</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1681"/>
<location filename="../tsmuxerwindow.ui" line="1671"/>
<source>Splitting</source>
<translation>Нарезка</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1692"/>
<location filename="../tsmuxerwindow.ui" line="1682"/>
<source>No split</source>
<translation>Не нарезать</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1702"/>
<location filename="../tsmuxerwindow.ui" line="1692"/>
<source>Split by duration every</source>
<translation>Нарезать через каждые</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1728"/>
<location filename="../tsmuxerwindow.ui" line="1718"/>
<source>sec</source>
<translation>сек</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1735"/>
<location filename="../tsmuxerwindow.ui" line="1725"/>
<source>Split by size every</source>
<translation>Нарезать по размеру каждые</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1768"/>
<location filename="../tsmuxerwindow.ui" line="1758"/>
<source>KB</source>
<translation>Килобайт</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1773"/>
<location filename="../tsmuxerwindow.ui" line="1763"/>
<source>KiB</source>
<translation>Кибибайт</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1778"/>
<location filename="../tsmuxerwindow.ui" line="1768"/>
<source>MB</source>
<translation>Мегабайт</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1783"/>
<location filename="../tsmuxerwindow.ui" line="1773"/>
<source>MiB</source>
<translation>Мебибайт</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1788"/>
<location filename="../tsmuxerwindow.ui" line="1778"/>
<source>GB</source>
<translation>Гигабайт</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1793"/>
<location filename="../tsmuxerwindow.ui" line="1783"/>
<source>GiB</source>
<translation>Гибибайт</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1825"/>
<location filename="../tsmuxerwindow.ui" line="1815"/>
<source>Cutting</source>
<translation>Обрезка</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1836"/>
<location filename="../tsmuxerwindow.ui" line="1826"/>
<source>Enable cutting</source>
<translation>Разрешить обрезку</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1847"/>
<location filename="../tsmuxerwindow.ui" line="1837"/>
<source>Start</source>
<translation>Начало</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1857"/>
<location filename="../tsmuxerwindow.ui" line="1847"/>
<source>End</source>
<translation>Конец</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1937"/>
<location filename="../tsmuxerwindow.ui" line="1927"/>
<source>Subtitles</source>
<translation>Субтитры</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1952"/>
<location filename="../tsmuxerwindow.ui" line="1942"/>
<source> Default text based subtitles font: </source>
<translation> Шрифт текстовых субтитров по умолчанию: </translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="1976"/>
<location filename="../tsmuxerwindow.ui" line="1981"/>
<location filename="../tsmuxerwindow.ui" line="1986"/>
<location filename="../tsmuxerwindow.ui" line="1991"/>
<location filename="../tsmuxerwindow.ui" line="1996"/>
<location filename="../tsmuxerwindow.ui" line="1975"/>
<location filename="../tsmuxerwindow.ui" line="1980"/>
<location filename="../tsmuxerwindow.ui" line="1985"/>
<location filename="../tsmuxerwindow.ui" line="1990"/>
<location filename="../tsmuxerwindow.ui" line="1995"/>
<source>New Row</source>
<translation>Новая Строка</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2001"/>
<location filename="../tsmuxerwindow.ui" line="2006"/>
<location filename="../tsmuxerwindow.ui" line="2000"/>
<location filename="../tsmuxerwindow.ui" line="2005"/>
<source>New Column</source>
<translation>Новый Столбец</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2011"/>
<location filename="../tsmuxerwindow.ui" line="2010"/>
<source>Name:</source>
<translation>Имя:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2021"/>
<location filename="../tsmuxerwindow.ui" line="2020"/>
<source>Size:</source>
<translation>Размер:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2026"/>
<location filename="../tsmuxerwindow.ui" line="2025"/>
<source>65</source>
<translation>65</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2031"/>
<location filename="../tsmuxerwindow.ui" line="2030"/>
<source>Color:</source>
<translation>Цвет:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2036"/>
<location filename="../tsmuxerwindow.ui" line="2035"/>
<source>0xffffffff</source>
<translation>0xffffffff</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2041"/>
<location filename="../tsmuxerwindow.ui" line="2040"/>
<source>Charset:</source>
<translation>Набор символов:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2046"/>
<location filename="../tsmuxerwindow.ui" line="2045"/>
<source>Default</source>
<translation>По умолчанию</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2051"/>
<location filename="../tsmuxerwindow.ui" line="2050"/>
<source>Options:</source>
<translation>Параметры:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2072"/>
<location filename="../tsmuxerwindow.ui" line="2071"/>
<source>Font</source>
<translation>Шрифт</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2079"/>
<location filename="../tsmuxerwindow.ui" line="2078"/>
<source>Color</source>
<translation>Цвет</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2103"/>
<location filename="../tsmuxerwindow.ui" line="2102"/>
<source>Additional border, pixels:</source>
<translation>Дополнительная рамка, пикселей:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2129"/>
<location filename="../tsmuxerwindow.ui" line="2128"/>
<source>line spacing:</source>
<translation>Междустрочное расстояние:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2155"/>
<location filename="../tsmuxerwindow.ui" line="2154"/>
<source>Fade in/out animation:</source>
<translation>Анимация появления/исчезания:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2166"/>
<location filename="../tsmuxerwindow.ui" line="2165"/>
<source>None</source>
<translation>Отсутствует</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2171"/>
<location filename="../tsmuxerwindow.ui" line="2170"/>
<source>Fast</source>
<translation>Быстрое</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2176"/>
<location filename="../tsmuxerwindow.ui" line="2175"/>
<source>Medium</source>
<translation>Среднее</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2181"/>
<location filename="../tsmuxerwindow.ui" line="2180"/>
<source>Slow</source>
<translation>Медленное</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2186"/>
<location filename="../tsmuxerwindow.ui" line="2185"/>
<source>Very slow</source>
<translation>Очень медленное</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2222"/>
<location filename="../tsmuxerwindow.ui" line="2221"/>
<source> Vertical position: </source>
<translation> Позиция по вертикали: </translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2233"/>
<location filename="../tsmuxerwindow.ui" line="2232"/>
<source>Top of screen</source>
<translation>Верх экрана</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2267"/>
<location filename="../tsmuxerwindow.ui" line="2266"/>
<source>top offset, pixels:</source>
<translation>отступ от верха, пикселей:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2301"/>
<location filename="../tsmuxerwindow.ui" line="2473"/>
<location filename="../tsmuxerwindow.ui" line="2300"/>
<location filename="../tsmuxerwindow.ui" line="2472"/>
<source>Screen center</source>
<translation>Центр экрана</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2308"/>
<location filename="../tsmuxerwindow.ui" line="2307"/>
<source>Bottom of screen</source>
<translation>Низ экрана</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2342"/>
<location filename="../tsmuxerwindow.ui" line="2341"/>
<source>bottom offset, pixels:</source>
<translation>отступ от низа, пикселей:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2394"/>
<location filename="../tsmuxerwindow.ui" line="2393"/>
<source> Horizontal position: </source>
<translation> Позиция по горизонтали: </translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2405"/>
<location filename="../tsmuxerwindow.ui" line="2404"/>
<source>Left of screen</source>
<translation>слева экрана</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2439"/>
<location filename="../tsmuxerwindow.ui" line="2438"/>
<source>left offset, pixels:</source>
<translation>отступ слева, пикселей:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2486"/>
<location filename="../tsmuxerwindow.ui" line="2485"/>
<source>Right of screen</source>
<translation>справа экрана</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2523"/>
<location filename="../tsmuxerwindow.ui" line="2522"/>
<source>right offset, pixels:</source>
<translation>отступ справа, пикселей:</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2588"/>
<location filename="../tsmuxerwindow.ui" line="2587"/>
<source>About</source>
<translation>О программе</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2693"/>
<location filename="../tsmuxerwindow.ui" line="2639"/>
<source>Output</source>
<translation>Результат</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2707"/>
<location filename="../tsmuxerwindow.ui" line="2653"/>
<source>TS muxing</source>
<translation>Запись в TS</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2723"/>
<location filename="../tsmuxerwindow.ui" line="2669"/>
<source>M2TS muxing</source>
<translation>Запись в M2TS</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2730"/>
<location filename="../tsmuxerwindow.ui" line="2676"/>
<source>Blu-ray ISO</source>
<translation>Запись блюрея в файл ISO</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2743"/>
<location filename="../tsmuxerwindow.ui" line="2689"/>
<source>Blu-ray folder</source>
<translation>Запись блюрея в папку</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2750"/>
<location filename="../tsmuxerwindow.ui" line="2696"/>
<source>AVCHD folder</source>
<translation>Запись AVCHD в папку</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2763"/>
<location filename="../tsmuxerwindow.cpp" line="1403"/>
<location filename="../tsmuxerwindow.ui" line="2709"/>
<location filename="../tsmuxerwindow.cpp" line="1414"/>
<source>Demux</source>
<translation>Демукс</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2787"/>
<location filename="../tsmuxerwindow.ui" line="2733"/>
<source>Disk label</source>
<translation>Имя диска</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2797"/>
<location filename="../tsmuxerwindow.cpp" line="2364"/>
<location filename="../tsmuxerwindow.ui" line="2743"/>
<location filename="../tsmuxerwindow.cpp" line="2379"/>
<source>File name</source>
<translation>Имя Файла</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2823"/>
<location filename="../tsmuxerwindow.ui" line="2769"/>
<source>Browse</source>
<translation>Выбрать</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2847"/>
<location filename="../tsmuxerwindow.ui" line="2793"/>
<source>Meta file</source>
<translation>Файл проекта tsMuxeR</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2929"/>
<location filename="../tsmuxerwindow.cpp" line="2350"/>
<location filename="../tsmuxerwindow.ui" line="2862"/>
<location filename="../tsmuxerwindow.cpp" line="2365"/>
<source>Sta&amp;rt muxing</source>
<translation>Ста&amp;рт муксинга</translation>
</message>
<message>
<location filename="../tsmuxerwindow.ui" line="2948"/>
<location filename="../tsmuxerwindow.ui" line="2887"/>
<source>Save meta file</source>
<translation>Сохранить проект</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="534"/>
<location filename="../tsmuxerwindow.cpp" line="25"/>
<source>All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;AC3/E-AC3 (*.ac3 *.ddp);;AAC (advanced audio coding) (*.aac);;AVC/MVC/H.264 elementary stream (*.avc *.mvc *.264 *.h264);;HEVC (High Efficiency Video Codec) (*.hevc *.hvc *.265 *.h265);;Digital Theater System (*.dts);;Mpeg video elementary stream (*.mpv *.m1v *.m2v);;Mpeg audio elementary stream (*.mpa);;Transport Stream (*.ts);;BDAV Transport Stream (*.m2ts *.mts *.ssif);;Program Stream (*.mpg *.mpeg *.vob *.evo);;Matroska audio/video files (*.mkv *.mka *.mks);;MP4 audio/video files (*.mp4 *.m4a *.m4v);;Quick time audio/video files (*.mov);;Blu-ray play list (*.mpls *.mpl);;Blu-ray PGS subtitles (*.sup);;Text subtitles (*.srt);;WAVE - Uncompressed PCM audio (*.wav *.w64);;RAW LPCM Stream (*.pcm);;All files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="48"/>
<source>tsMuxeR project file (*.meta);;All files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="54"/>
<source>Transport stream (*.ts);;all files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="56"/>
<source>BDAV Transport Stream (*.m2ts);;all files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="58"/>
<source>Disk image (*.iso);;all files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="545"/>
<source>Not supported</source>
<translation>Не поддерживается</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="600"/>
<location filename="../tsmuxerwindow.cpp" line="1117"/>
<location filename="../tsmuxerwindow.cpp" line="611"/>
<location filename="../tsmuxerwindow.cpp" line="1128"/>
<source>Unsupported format</source>
<translation>Неподдерживаемый формат</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="601"/>
<location filename="../tsmuxerwindow.cpp" line="612"/>
<source>Can&apos;t detect stream type. File name: &quot;%1&quot;</source>
<translation>Не определён тип потока. Имя файла: &quot;%1&quot;</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="871"/>
<location filename="../tsmuxerwindow.cpp" line="882"/>
<source>Add media file</source>
<translation>Добавить медиафайл</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="908"/>
<location filename="../tsmuxerwindow.cpp" line="919"/>
<source>File already exists</source>
<translation>Файл уже есть</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="909"/>
<location filename="../tsmuxerwindow.cpp" line="920"/>
<source>File &quot;%1&quot; already exists</source>
<translation>Файл &quot;%1&quot; уже есть</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1122"/>
<location filename="../tsmuxerwindow.cpp" line="1133"/>
<source>Unsupported format or all tracks are not recognized. File name: &quot;%1&quot;</source>
<translation>Неподдерживаемый формат или все дорожки не распознаны. Имя файла: &quot;%1&quot;</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1133"/>
<location filename="../tsmuxerwindow.cpp" line="1144"/>
<source>Some tracks not recognized. This tracks was ignored. File name: &quot;%1&quot;</source>
<translation>Некоторые дорожки не распознаны. Эта дорожка была проигнорирована. Имя файла: &quot;%1&quot;</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1403"/>
<location filename="../tsmuxerwindow.cpp" line="1414"/>
<source>Mux</source>
<translation>Создать</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1422"/>
<location filename="../tsmuxerwindow.cpp" line="1433"/>
<source>tsMuxeR error</source>
<translation>Ошибка tsMuxeR</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1426"/>
<location filename="../tsmuxerwindow.cpp" line="1437"/>
<source>tsMuxeR not found!</source>
<translation>tsMuxeR не найден!</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="1444"/>
<location filename="../tsmuxerwindow.cpp" line="1455"/>
<source>Can&apos;t execute tsMuxeR!</source>
<translation>Не возможно запустить tsMuxeR!</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2204"/>
<location filename="../tsmuxerwindow.cpp" line="2205"/>
<location filename="../tsmuxerwindow.cpp" line="2219"/>
<location filename="../tsmuxerwindow.cpp" line="2220"/>
<source>No track selected</source>
<translation>Не выбрана дорожка</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2212"/>
<location filename="../tsmuxerwindow.cpp" line="2227"/>
<source>Append media file</source>
<translation>Присоединить медиафайл</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2249"/>
<location filename="../tsmuxerwindow.cpp" line="2264"/>
<source>Invalid file extension</source>
<translation>Неверное расширение файла</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2250"/>
<location filename="../tsmuxerwindow.cpp" line="2265"/>
<source>Appended file must have same file extension.</source>
<translation>Присоединяемый файл должен иметь тоже самое расширение файла.</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2348"/>
<location filename="../tsmuxerwindow.cpp" line="2363"/>
<source>Sta&amp;rt demuxing</source>
<translation>Ста&amp;rт демуксинга</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2360"/>
<location filename="../tsmuxerwindow.cpp" line="2375"/>
<source>Folder</source>
<translation>Папка</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2450"/>
<location filename="../tsmuxerwindow.cpp" line="2465"/>
<source>Select file for muxing</source>
<translation>Выберите файл для муксинга</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2472"/>
<location filename="../tsmuxerwindow.cpp" line="2488"/>
<location filename="../tsmuxerwindow.cpp" line="2487"/>
<location filename="../tsmuxerwindow.cpp" line="2503"/>
<source>Invalid file name</source>
<translation>Неверное имя файла</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2473"/>
<location filename="../tsmuxerwindow.cpp" line="2488"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.m2ts&quot;</source>
<translation>Выходной файл &quot;%1&quot; имеет недопустимое расширение. Пожалуйста, измените расширение файла на &quot;.m2ts&quot;</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2489"/>
<location filename="../tsmuxerwindow.cpp" line="2504"/>
<source>The output file &quot;%1&quot; has invalid extension. Please, change file extension to &quot;.iso&quot;</source>
<translation>Выходной файл &quot;%1&quot; имеет недопустимое расширение. Пожалуйста, измените расширение файла на &quot;.iso&quot;</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2503"/>
<location filename="../tsmuxerwindow.cpp" line="2518"/>
<source>file</source>
<extracomment>Used in expressions &quot;Overwrite existing %1&quot; and &quot;The output %1 already exists&quot;.</extracomment>
<translatorcomment>Используется в фразах &quot;Переписать существующий %1&quot; и &quot;Файл %1 уже существует&quot;.</translatorcomment>
<translation>файл</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2503"/>
<location filename="../tsmuxerwindow.cpp" line="2518"/>
<source>directory</source>
<translation>каталог</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2505"/>
<location filename="../tsmuxerwindow.cpp" line="2520"/>
<source>Overwrite existing %1?</source>
<translation>Переписать существующий %1?</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2506"/>
<location filename="../tsmuxerwindow.cpp" line="2521"/>
<source>The output %1 &quot;%2&quot; already exists. Do you want to overwrite it?</source>
<translation>Результат %1 &quot;%2&quot; уже есть. Хотите его перезаписать?</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2523"/>
<location filename="../tsmuxerwindow.cpp" line="2538"/>
<source>Muxing in progress</source>
<translation>Выполняется муксинг</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2523"/>
<location filename="../tsmuxerwindow.cpp" line="2538"/>
<source>Demuxing in progress</source>
<translation>Выполняется демуксинг</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2552"/>
<location filename="../tsmuxerwindow.cpp" line="2567"/>
<source>Can&apos;t create temporary meta file</source>
<translation>Не возможно создать временный файл проекта</translation>
</message>
<message>
<location filename="../tsmuxerwindow.cpp" line="2553"/>
<location filename="../tsmuxerwindow.cpp" line="2568"/>
<source>Can&apos;t create temporary meta file &quot;%1&quot;</source>
<translation>Не возможно создать временный файл проекта &quot;%1&quot;</translation>
</message>

View File

@ -20,8 +20,10 @@
#include "muxForm.h"
#include "ui_tsmuxerwindow.h"
const char fileDialogFilter[] =
"All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;\
QString fileDialogFilter()
{
return TsMuxerWindow::tr(
"All supported media files (*.aac *.mpv *.mpa *.avc *.mvc *.264 *.h264 *.ac3 *.dts *.ts *.m2ts *.mts *.ssif *.mpg *.mpeg *.vob *.evo *.mkv *.mka *.mks *.mp4 *.m4a *.m4v *.mov *.sup *.wav *.w64 *.pcm *.m1v *.m2v *.vc1 *.hevc *.hvc *.265 *.h265 *.mpls *.mpl *.srt);;\
AC3/E-AC3 (*.ac3 *.ddp);;\
AAC (advanced audio coding) (*.aac);;\
AVC/MVC/H.264 elementary stream (*.avc *.mvc *.264 *.h264);;\
@ -40,14 +42,20 @@ Blu-ray PGS subtitles (*.sup);;\
Text subtitles (*.srt);;\
WAVE - Uncompressed PCM audio (*.wav *.w64);;\
RAW LPCM Stream (*.pcm);;\
All files (*.*)";
const char saveMetaFilter[] = "tsMuxeR project file (*.meta);;All files (*.*)";
All files (*.*)");
}
const char TI_DEFAULT_TAB_NAME[] = "General track options";
const char TI_DEMUX_TAB_NAME[] = "Demux options";
const char TS_SAVE_DIALOG_FILTER[] = "Transport stream (*.ts);;all files (*.*)";
const char M2TS_SAVE_DIALOG_FILTER[] = "BDAV Transport Stream (*.m2ts);;all files (*.*)";
const char ISO_SAVE_DIALOG_FILTER[] = "Disk image (*.iso);;all files (*.*)";
QString saveMetaFilter() { return TsMuxerWindow::tr("tsMuxeR project file (*.meta);;All files (*.*)"); }
QString TI_DEFAULT_TAB_NAME() { return TsMuxerWindow::tr("General track options"); }
QString TI_DEMUX_TAB_NAME() { return TsMuxerWindow::tr("Demux options"); }
QString TS_SAVE_DIALOG_FILTER() { return TsMuxerWindow::tr("Transport stream (*.ts);;all files (*.*)"); }
QString M2TS_SAVE_DIALOG_FILTER() { return TsMuxerWindow::tr("BDAV Transport Stream (*.m2ts);;all files (*.*)"); }
QString ISO_SAVE_DIALOG_FILTER() { return TsMuxerWindow::tr("Disk image (*.iso);;all files (*.*)"); }
QSettings *settings = nullptr;
@ -229,6 +237,13 @@ QString getComboBoxTrackText(int idx, const QtvCodecInfo &codecInfo)
return text;
}
void initLanguageComboBox(QComboBox *comboBox)
{
comboBox->addItem("English", "en");
comboBox->addItem(QString::fromUtf8("Русский"), "ru");
comboBox->setCurrentIndex(-1); // makes sure currentIndexChanged() is emitted when reading settings.
}
} // namespace
// ----------------------- TsMuxerWindow -------------------------------------
@ -269,6 +284,7 @@ TsMuxerWindow::TsMuxerWindow()
ui->setupUi(this);
qApp->installTranslator(&qtCoreTranslator);
qApp->installTranslator(&tsMuxerTranslator);
initLanguageComboBox(ui->languageSelectComboBox);
setWindowTitle("tsMuxeR GUI " TSMUXER_VERSION);
lastInputDir = QDir::homePath();
lastOutputDir = QDir::homePath();
@ -293,11 +309,6 @@ TsMuxerWindow::TsMuxerWindow()
ui->outFileName->setText(getDefaultOutputFileName());
// next properties supported by Designer in version 4.5 only.
ui->listViewFont->horizontalHeader()->setVisible(false);
ui->listViewFont->verticalHeader()->setVisible(false);
ui->listViewFont->horizontalHeader()->setStretchLastSection(true);
m_header = new QnCheckBoxedHeaderView(this);
ui->trackLV->setHorizontalHeader(m_header);
ui->trackLV->horizontalHeader()->setStretchLastSection(true);
@ -310,7 +321,7 @@ TsMuxerWindow::TsMuxerWindow()
/////////////////////////////////////////////////////////////
for (int i = 0; i <= 3600; i += 5 * 60) ui->memoChapters->insertPlainText(floatToTime(i, '.') + '\n');
saveDialogFilter = tr(TS_SAVE_DIALOG_FILTER);
mSaveDialogFilter = TS_SAVE_DIALOG_FILTER();
const static int colWidths[] = {28, 200, 62, 38, 10};
for (unsigned i = 0u; i < sizeof(colWidths) / sizeof(int); ++i)
ui->trackLV->horizontalHeader()->resizeSection(i, colWidths[i]);
@ -369,8 +380,6 @@ TsMuxerWindow::TsMuxerWindow()
connect(ui->checkBoxCrop, &QCheckBox::stateChanged, this, &TsMuxerWindow::onSavedParamChanged);
connect(ui->checkBoxRVBR, &QAbstractButton::clicked, this, &TsMuxerWindow::onGeneralCheckboxClicked);
connect(ui->checkBoxCBR, &QAbstractButton::clicked, this, &TsMuxerWindow::onGeneralCheckboxClicked);
// connect(ui->checkBoxuseAsynIO, SIGNAL(stateChanged(int)), this,
// SLOT(onSavedParamChanged()));
connect(ui->radioButtonStoreOutput, &QAbstractButton::clicked, this, &TsMuxerWindow::onSavedParamChanged);
connect(ui->radioButtonOutoutInInput, &QAbstractButton::clicked, this, &TsMuxerWindow::onSavedParamChanged);
connect(ui->editVBVLen, spinBoxValueChanged, this, &TsMuxerWindow::onGeneralSpinboxValueChanged);
@ -382,7 +391,7 @@ TsMuxerWindow::TsMuxerWindow()
connect(ui->radioButtonNoChapters, &QAbstractButton::clicked, this, &TsMuxerWindow::onChapterParamsChanged);
connect(ui->radioButtonCustomChapters, &QAbstractButton::clicked, this, &TsMuxerWindow::onChapterParamsChanged);
connect(ui->spinEditChapterLen, spinBoxValueChanged, this, &TsMuxerWindow::onChapterParamsChanged);
connect(ui->memoChapters, &QTextEdit::textChanged, this, &TsMuxerWindow::onChapterParamsChanged);
connect(ui->memoChapters, &QPlainTextEdit::textChanged, this, &TsMuxerWindow::onChapterParamsChanged);
connect(ui->noSplit, &QAbstractButton::clicked, this, &TsMuxerWindow::onSplitCutParamsChanged);
connect(ui->splitByDuration, &QAbstractButton::clicked, this, &TsMuxerWindow::onSplitCutParamsChanged);
connect(ui->splitBySize, &QAbstractButton::clicked, this, &TsMuxerWindow::onSplitCutParamsChanged);
@ -870,7 +879,7 @@ void TsMuxerWindow::addFiles(const QList<QUrl> &files)
void TsMuxerWindow::onAddBtnClick()
{
QString fileName = QDir::toNativeSeparators(
QFileDialog::getOpenFileName(this, tr("Add media file"), lastInputDir, tr(fileDialogFilter)));
QFileDialog::getOpenFileName(this, tr("Add media file"), lastInputDir, fileDialogFilter()));
if (fileName.isEmpty())
return;
lastInputDir = fileName;
@ -938,7 +947,7 @@ void TsMuxerWindow::trackLVItemSelectionChanged()
while (ui->tabWidgetTracks->count()) ui->tabWidgetTracks->removeTab(0);
if (ui->trackLV->currentRow() == -1)
{
ui->tabWidgetTracks->addTab(ui->tabSheetFake, tr(TI_DEFAULT_TAB_NAME));
ui->tabWidgetTracks->addTab(ui->tabSheetFake, TI_DEFAULT_TAB_NAME());
return;
}
QtvCodecInfo *codecInfo = getCurrentCodec();
@ -949,7 +958,7 @@ void TsMuxerWindow::trackLVItemSelectionChanged()
{
if (isVideoCodec(codecInfo->displayName))
{
ui->tabWidgetTracks->addTab(ui->tabSheetVideo, tr(TI_DEFAULT_TAB_NAME));
ui->tabWidgetTracks->addTab(ui->tabSheetVideo, TI_DEFAULT_TAB_NAME());
ui->checkFPS->setChecked(codecInfo->checkFPS);
ui->checkBoxLevel->setChecked(codecInfo->checkLevel);
@ -980,9 +989,9 @@ void TsMuxerWindow::trackLVItemSelectionChanged()
}
else
{
ui->tabWidgetTracks->addTab(ui->tabSheetAudio, tr(TI_DEFAULT_TAB_NAME));
ui->tabWidgetTracks->addTab(ui->tabSheetAudio, TI_DEFAULT_TAB_NAME());
if (codecInfo->displayName == "LPCM")
ui->tabWidgetTracks->addTab(ui->demuxLpcmOptions, tr(TI_DEMUX_TAB_NAME));
ui->tabWidgetTracks->addTab(ui->demuxLpcmOptions, TI_DEMUX_TAB_NAME());
if (codecInfo->displayName == "DTS-HD")
ui->dtsDwnConvert->setText("Downconvert DTS-HD to DTS");
@ -1872,12 +1881,21 @@ void TsMuxerWindow::updateMuxTime2()
updateMetaLines();
}
void TsMuxerWindow::onLanguageComboBoxIndexChanged(int x)
void TsMuxerWindow::onLanguageComboBoxIndexChanged(int idx)
{
static const QString languages[] = {"en", "ru"};
auto lang = languages[x];
auto lang = ui->languageSelectComboBox->itemData(idx).toString();
qtCoreTranslator.load(QString("qtbase_%1").arg(lang), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
tsMuxerTranslator.load(QString("tsmuxergui_%1").arg(lang), ":/i18n");
QFile aboutContent(QString(":/about_%1.html").arg(lang));
if (aboutContent.open(QIODevice::ReadOnly))
{
ui->textEdit->setHtml(QString::fromUtf8(aboutContent.readAll()));
}
else
{
qWarning() << "Failed to open about.html for language" << lang << aboutContent.errorString();
ui->textEdit->clear();
}
}
void TsMuxerWindow::updateMetaLines()
@ -1886,7 +1904,8 @@ void TsMuxerWindow::updateMetaLines()
return;
ui->memoMeta->clear();
ui->memoMeta->append(getMuxOpts());
QString metaContent;
metaContent.append(getMuxOpts() + '\n');
QString tmpFps;
for (int i = 0; i < ui->trackLV->rowCount(); ++i)
{
@ -1951,7 +1970,7 @@ void TsMuxerWindow::updateMetaLines()
if (codecInfo->subTrack != 0)
postfix += QString(", subTrack=") + QString::number(codecInfo->subTrack);
if (isVideoCodec(codecInfo->displayName))
ui->memoMeta->append(prefix + getVideoMetaInfo(codecInfo) + postfix);
metaContent.append(prefix + getVideoMetaInfo(codecInfo) + postfix + '\n');
else
{
if (isDiskOutput() && ui->defaultAudioTrackCheckBox->isChecked() &&
@ -1959,9 +1978,10 @@ void TsMuxerWindow::updateMetaLines()
{
postfix += QString(", default");
}
ui->memoMeta->append(prefix + getAudioMetaInfo(codecInfo) + postfix);
metaContent.append(prefix + getAudioMetaInfo(codecInfo) + postfix + '\n');
}
}
ui->memoMeta->setPlainText(metaContent);
}
void TsMuxerWindow::onFontBtnClicked()
@ -2159,7 +2179,7 @@ void TsMuxerWindow::deleteTrack(int idx)
{
lastSourceDir.clear();
while (ui->tabWidgetTracks->count()) ui->tabWidgetTracks->removeTab(0);
ui->tabWidgetTracks->addTab(ui->tabSheetFake, tr(TI_DEFAULT_TAB_NAME));
ui->tabWidgetTracks->addTab(ui->tabSheetFake, TI_DEFAULT_TAB_NAME());
ui->outFileName->setText(getDefaultOutputFileName());
outFileNameModified = false;
}
@ -2204,7 +2224,7 @@ void TsMuxerWindow::onAppendButtonClick()
return;
}
QString fileName = QDir::toNativeSeparators(
QFileDialog::getOpenFileName(this, tr("Append media file"), lastInputDir, tr(fileDialogFilter)));
QFileDialog::getOpenFileName(this, tr("Append media file"), lastInputDir, fileDialogFilter()));
if (fileName.isEmpty())
return;
lastInputDir = fileName;
@ -2368,17 +2388,17 @@ void TsMuxerWindow::RadioButtonMuxClick()
if (ui->radioButtonTS->isChecked())
{
ui->outFileName->setText(changeFileExt(ui->outFileName->text(), "ts"));
saveDialogFilter = tr(TS_SAVE_DIALOG_FILTER);
mSaveDialogFilter = TS_SAVE_DIALOG_FILTER();
}
else if (ui->radioButtonBluRayISO->isChecked())
{
ui->outFileName->setText(changeFileExt(ui->outFileName->text(), "iso"));
saveDialogFilter = tr(ISO_SAVE_DIALOG_FILTER);
mSaveDialogFilter = ISO_SAVE_DIALOG_FILTER();
}
else
{
ui->outFileName->setText(changeFileExt(ui->outFileName->text(), "m2ts"));
saveDialogFilter = tr(M2TS_SAVE_DIALOG_FILTER);
mSaveDialogFilter = M2TS_SAVE_DIALOG_FILTER();
}
}
ui->DiskLabel->setVisible(ui->radioButtonBluRayISO->isChecked());
@ -2442,7 +2462,7 @@ void TsMuxerWindow::saveFileDialog()
path = QFileInfo(fileName).absolutePath();
}
QString fileName = QDir::toNativeSeparators(
QFileDialog::getSaveFileName(this, tr("Select file for muxing"), path, saveDialogFilter));
QFileDialog::getSaveFileName(this, tr("Select file for muxing"), path, mSaveDialogFilter));
if (!fileName.isEmpty())
{
ui->outFileName->setText(fileName);
@ -2529,7 +2549,7 @@ void TsMuxerWindow::startMuxing()
void TsMuxerWindow::saveMetaFileBtnClick()
{
QString metaName =
QFileDialog::getSaveFileName(this, "", changeFileExt(ui->outFileName->text(), "meta"), tr(saveMetaFilter));
QFileDialog::getSaveFileName(this, "", changeFileExt(ui->outFileName->text(), "meta"), mSaveDialogFilter);
if (metaName.isEmpty())
return;
QFileInfo fi(metaName);

View File

@ -166,7 +166,7 @@ class TsMuxerWindow : public QWidget
bool outFileNameModified;
QString oldFileName;
bool outFileNameDisableChange;
QString saveDialogFilter;
QString mSaveDialogFilter;
MuxForm* muxForm;
QString newFileName;
QList<QtvCodecInfo> codecList;

View File

@ -1226,26 +1226,16 @@
</widget>
</item>
<item>
<widget class="QTextEdit" name="memoChapters">
<widget class="QPlainTextEdit" name="memoChapters">
<property name="enabled">
<bool>false</bool>
</property>
<property name="tabChangesFocus">
<bool>true</bool>
</property>
<property name="html">
<string notr="true">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="tabStopWidth">
<number>20</number>
</property>
<property name="acceptRichText">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
@ -1971,6 +1961,15 @@ p, li { white-space: pre-wrap; }
<height>84</height>
</size>
</property>
<attribute name="horizontalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<row>
<property name="text">
<string>New Row</string>
@ -2593,68 +2592,15 @@ p, li { white-space: pre-wrap; }
</property>
<item>
<widget class="QTextEdit" name="textEdit">
<property name="readOnly">
<bool>true</bool>
</property>
<property name="html">
<string notr="true">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;title&gt;tsMuxeR&lt;/title&gt;&lt;style type=&quot;text/css&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;https://github.com/justdan96/tsMuxer&quot;&gt;&lt;span style=&quot; font-size:8pt; font-weight:600; text-decoration: underline; color:#0000ff;&quot;&gt;tsMuxeR&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; the software utility to create TS and M2TS files for IP broadcasting as well as for viewing at hardware video players (i.e., Dune HD Ultra, Sony Playstation3, Samsung Smart TV and others). &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;tsMuxeR is open source. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Supported incoming formats: &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;TS; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;M2TS; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;SIFF;&lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;MOV;&lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;MP4;&lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;MKV;&lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Blu-ray; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Demux option. &lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Supported videocodecs: &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;H.264/MVC &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;H.265/HEVC; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Microsoft VC-1; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;MPEG-2. &lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Supported audiocodecs: &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;AAC; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;AC3 / E-AC3(DD+); &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Dolby True HD (for streams with AC3 core only); &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;DTS/ DTS-HD; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;LPCM. &lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Supported subtitle types: &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;M2TS Presentation graphic stream. &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;SRT text subtitles &lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Supported containers and formats: &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Elementary stream; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Transport stream TS and M2TS; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Program stream EVO/VOB/MPG; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Matroska MKV/MKA. &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;MP4/MOV. &lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Main features: &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3D Blu-ray support;&lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;UHD, HDR10, HDR10+ and Dolby Vision support; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Automatic or manual fps adjustment while mixing; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Level changing as well as SEI, SPS/PPS elements and NAL unit delimiter cycle insertion while mixing H.264; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Audio tracks and subtitles time shifting; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to extract DTS core from DTS-HD; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to extract AC3 core from True-HD; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to join files; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to adjust fps for subtitles; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to convert LPCM streams into WAVE and vice versa; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Track language information injection into blu-ray structure and TS header; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to cut source files; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to split output file; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to detect audio delay for TS/M2TS/MPG/VOB/EVO sources; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to remove pulldown info from stream; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to open Blu-ray playlist (MPLS) files; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ability to convert SRT subtitles to PGS; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Tags for SRT subtitles support - tags for changing font, color, size, etc.; tag's syntax is similar to HTML; &lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;United cross-platform GUI - Windows, Linux, MacOS. &lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</string>
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
@ -2848,16 +2794,13 @@ p, li { white-space: pre-wrap; }
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QTextEdit" name="memoMeta">
<widget class="QPlainTextEdit" name="memoMeta">
<property name="undoRedoEnabled">
<bool>false</bool>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="acceptRichText">
<bool>false</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
@ -2886,16 +2829,6 @@ p, li { white-space: pre-wrap; }
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string notr="true">English</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Русский</string>
</property>
</item>
</widget>
</item>
<item>
@ -2932,6 +2865,12 @@ p, li { white-space: pre-wrap; }
</item>
<item>
<widget class="QPushButton" name="buttonSaveMeta">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>128</width>
@ -2940,7 +2879,7 @@ p, li { white-space: pre-wrap; }
</property>
<property name="maximumSize">
<size>
<width>128</width>
<width>256</width>
<height>16777215</height>
</size>
</property>