tsMuxeR: Быстрый авторинг Blu-ray без меню

tsMuxeR не позволяет собрать мультитайловый блюрэй диск
Поэтому собираю нескойлько тайтлов отдельно с параметрами --mplsOffset=1 --m2tsOffset=1 (как это делает Blu-Disc Studio Lite),
а потом делаю сборный диск состоящий в основном из ссылок на однотайтловые.
Ну и заодно делаю 00000.mpls как плэйлист всех тайтлов для дубовых плэеров типа mpc-hc
Это работает и для 3D дисков. Вот только смешивать стерео с моно не пробовал.
Вот как выглядит этот снипет в моём скрипте cut.py:

if g.lm3>1: #g.lm3=количество тайтлов в сборном диске
disk=g.m3[0]/“disk”
tn(f.ter, disk, ti) #ti=текущий тайтл пишу чаптеры из f.ter в disk\BD\BDMV\META\TN nmt_rus_0000X.xml может vlc допилят
spa=f.cwd/“BD”/“BDMV”
src=spa/e2f(1) #“PLAYLIST”/“{:05}.{}”.format(1, “mpls”)
tpa=disk/“BD”/“BDMV”
tar=tpa/e2f(ti)
if ti==1: #первый тайтл
g.disk=(disk/f.name).with_suffix(“.bdmd”), f.name, disk/label, load, “S” if str(“{:05}”.format(2)) in src.read() else “”
bdl=“BACKUP”, “AUXDATA”, “STREAM”, “BDJO”, “CLIPINF”, “JAR”, “PLAYLIST”
for i, ch in enumerate(bdl): # создаю пустые каталоги
if i: (tpa/ch).mkdir()
else:
for gch in bdl[-4:]: (tpa/ch/gch).mkdir()
(disk/“BD”/“CERTIFICATE”/“BACKUP”).mkdir()
ss=g.disk[4] #3D
li=(ti2-1 , ti2) if ss else (ti, ) # для 3D в каждом mpls два m2ts
mib=(“MovieObject.bdmv”, “index.bdmv”)
for i, fbdmv in enumerate(mib):
if i:
if ppuc(rU/“index{}{}.bdmv”.format(1, ss), spa/ fbdmv, 1): #пишу переход на следующий тайтл по кнопке меню
link(spa/fbdmv, spa/e2f(-1, 1, fbdmv)) #“BACKUP”/fbdmv
else:
if ppuc(rU/fbdmv, spa/ fbdmv, 1):
link( spa/fbdmv, spa/e2f(-1, 1, fbdmv))
if ti>1: #патчу mpls
if ppuc(src, tar, 1):
b=tar.read()
for i, j in enumerate(li): b=b.replace(str(“{:05}”.format(i+1)), str(“{:05}”.format(j)))
tar.write(b)
link(tar, tpa/e2f(ti, 1)) #“BACKUP”/“PLAYLIST”/“{:05}.{}”.format(ti, “mpls”)
else: blink(src, tpa, e2f(ti)) #создаю линки на mpls и его резервную копию
g.j+=[json.loads(log(g.MPLS2JSONU, ‘“%s”’, tar))] # читаю mpls
сс=1 # на проффесиональных дисках connection_condition не ставят 5
for i, j in enumerate(li):
link(spa/e2f(i+1, 0, “m2ts”), tpa/e2f(j, 0, “m2ts”))
blink(spa/e2f(i+1, 0, “clpi”), tpa, e2f(j, 0, “clpi”))
if ti==g.lm3: #последний тайтл
for i in range(g.lm3)[1:]: # пишу 00000.mpls как плэйлист всех тайтлов для дубовых плэеров типа mpc-hc
for plm in g.j[i][“MPLS”][“PlayListMark”]: #пишу чаптеры
plm[“ref_to_PlayItem_id”]=i
g.j[0][“MPLS”][“PlayListMark”]+=[plm]
g.j[i][“MPLS”][“PlayList”][“PlayItem”][0][“connection_condition”]=сс
g.j[0][“MPLS”][“PlayList”][“PlayItem”]+=g.j[i][“MPLS”][“PlayList”][“PlayItem”]
if g.j[i][“MPLS”][“ExtensionData”]: #3D
if not g.j[0][“MPLS”][“ExtensionData”]: g.j[0][“MPLS”][“ExtensionData”]=g.j[i][“MPLS”][“ExtensionData”][:]
g.j[0][“MPLS”][“ExtensionData”][0][“STN_Table_SS”][“STN_table_SS_for_PlayItem”]+=g.j[i][“MPLS”][“ExtensionData”][0][“STN_Table_SS”][“STN_table_SS_for_PlayItem”]
g.j[i][“MPLS”][“ExtensionData”][1][“SubPath_extension”][0][“SubPlayItem”][0][“sp_connection_condition”]=сс
g.j[i][“MPLS”][“ExtensionData”][1][“SubPath_extension”][0][“SubPlayItem”][0][“sync_PlayItem_id”]=i
g.j[0][“MPLS”][“ExtensionData”][1][“SubPath_extension”][0][“SubPlayItem”]+=g.j[i][“MPLS”][“ExtensionData”][1][“SubPath_extension”][0][“SubPlayItem”]
tar=tpa/e2f(0) #“PLAYLIST/00000.mpls”
if m2j(disk/“00000.json”, str(g.j[0]).replace(“u’”, ‘"’).replace(“'”, ‘"’), tar): link(tar, tpa/e2f(0, 1)) #пишу 00000.mpls из 00000.json
if ss: (disk/“1.mvc”).touch() #флаг 3D для сборки Blu-Disc Studio
#bdmd для попап меню чаптеров Blu-Disc Studio
rw(g.disk[0], bdmd%(1, g.disk[1], g.lang, g.disk[2], g.disk[3], " ".join(g.pop), " ".join(g.mov), " ".join(g.gro)))
bd(g.m3, disk) #пишу список тайтлов из g.m3 в disk\BD\BDMV\META\DL\bdmt_rus.xml и имя и жакетку диска которые vlc и Leawo показывают
for i, fbdmv in enumerate(mib):
if i:
ppuc(rU/“index{}{}.bdmv”.format(ti, ss), tpa/ fbdmv)
link(tpa/fbdmv, tpa/e2f(-1, 1, fbdmv))
else: blink(spa/fbdmv, tpa, fbdmv)

Ну а попап меню для переходов по чаптерам и тайтлам делаю с помощью Blu-Disc Studio Lite
Как-нибудь выложу…

1 лайк

I have problem with tsmuxer and HEVC video. I am trying to add subtitles to a movie, but after tsmuxer has finished it’s job, the final file seems to have variable framerate, despite Mediainfo reporting proper 24000/1001, the length of movie according to players is also altered. There are no errors from tsmuxer being thrown. Any idea?


У меня проблема с видео HEVC и tsmuxer. Я пытаюсь добавить субтитры к фильму, но после завершения его работы tsmuxer окончательный файл, как представляется, имеют переменную частоту кадров, несмотря на Mediainfo отчетности надлежащего 24000/1001, длина фильма согласно игроков также изменяется. Есть нет ошибок от tsmuxer брошены. Любая идея?

Она не только у Вас. Забудьте про tsmuxer. В работе с UHD вам поможет только Scenarist UHD.

А в будущем, возможно, и не только он. Относительно недавно небезызвестный jdobbs обмолвился, что:

В моих планах написать замену для TSMUXER. Я уже написал модуль для мультиплексирования HEVC и создания файлов MPLS и CLPI, чтобы я мог исправить вывод TSMUXER в BD-RB - но я не могу предсказать, когда проект может быть завершён полностью.

Здравствуйте, я новичок в BD-авторинге. Быстрый вопрос. Я создал и рассчитал свою дорожку субтитров, и она готова интегрироваться в BD, но я хочу создать несколько версий одной дорожки субтитров, но каждая с разными свойствами.
Я хочу версию белого цвета и версию желтого цвета. Я также хочу сделать небольшие субтитры, которые выполняются внутри изображения, и большие субтитры, которые будут воспроизводиться под изображением в общей сложности для 4 различных дорожек субтитров.
Будет ли tsMueR создавать одновременные дорожки субтитров, каждый с отдельными свойствами, или мне нужно использовать другую программу?

@Moaninronin, в tsMuxeR нет возможности настройки каждой дорожки субтитров индивидуально. Можно воспользоваться [i]Subtitle Edit[/i], где подготовить субтитры с нужными свойствами, сохранить их в формат Blu-ray sup и использовать в tsMuxeR.

Всем привет! столкнулся с проблемой при использовании tsMuxer последней версии, надеюсь поможете, уже устал читать кучу ненужной информации по созданию блю рэй дисков, в общем мне всего то нужно из готового m2ts видеофайла создать структуру бд диска для записи и просмотра на железном плеере, случайно обратил внимание что при создании битрейт видео и соответсвенно размер файла незначительно меньше, на гигабайт ровно) ос windows 10, я так понимаю всё таки перекодирует видео почему то, есть какие то альтернативы этой программы но без ухудшения качества\конвертации? меню и тд не нужно) я тут увидел scenarist bd существует такая, пойдёт для этого? мне чем проще тем лучше без лишних заморочек) заранее спасибо!

Чтобы уложиться в 25025 надо исходники иметь в сумме не более ~ 23000. tsMuxer ничего не перекодирует. Исходники должны быть “Elementary”, т.е. 264, AVC, VC-1, ac3, dtshd и т.д.

Это вы мегабайты имеете ввиду? сейчас посмотрел да исходник у меня 23669, но тогда вопрос как он без конвертации делает битрейт видео меньше и размер) ладно попробую сделать меньше 23000 посмотрим что на выходе получится, спасибо за ответ! с кодеками всё норм)

Ничего он не конвертирует. Это всего лишь контейнер. Вы колбасу и яблоки кладете в сумку (контейнер) и Вам легче все это нести (воспроизводить железному плееру). А общий вес складывается из колбасы, яблок и контейнера.

Не поверил бы, если бы сам не столкнулся недавно с таким “фокусом” тсмюксера. Что происходит при мюксе непонятно, но факт такой:
исходный файл:

Playlist: 00003.MPLS
Size: 37382424*576 bytes
Length: 1:48:19.743
Total Bitrate: 46.01 Mbps
Video: MPEG-4 AVC Video / 35000 kbps / 1080p / 23.976 fps / 16:9 / High Profile 4.1
Audio: English / DTS-HD Master Audio / 5.1 / 48 kHz / 2017 kbps / 24-bit (DTS Core: 5.1 / 48 kHz / 1509 kbps / 24-bit)
Audio: Russian / Dolby Digital Audio / 5.1 / 48 kHz / 448 kbps / DN -4dB
Audio: Russian / Dolby Digital Audio / 2.0 / 48 kHz / 384 kbps / DN -4dB
Audio: Russian / Dolby Digital Audio / 5.1 / 48 kHz / 448 kbps / DN -4dB
Audio: Russian / Dolby Digital Audio / 5.1 / 48 kHz / 384 kbps / DN -4dB
Audio: Russian / DTS-HD Master Audio / 5.1 / 48 kHz / 2074 kbps / 16-bit (DTS Core: 5.1 / 48 kHz / 1509 kbps / 16-bit)
Audio: Russian / DTS Audio / 5.1 / 48 kHz / 1509 kbps / 24-bit
Audio: English / Dolby Digital Audio / 2.0 / 48 kHz / 384 kbps / DN -4dB
Audio: English / Dolby Digital Audio / 2.0 / 48 kHz / 384 kbps / DN -4dB
Subtitle: English / 53.665 kbps
Subtitle: Russian / 21.369 kbps
Subtitle: Russian / 22.116 kbps
Subtitle: Russian / 57.104 kbps
Subtitle: Russian / 52.383 kbps
Subtitle: Russian / 0.053 kbps
и картинка битрейта
http://www.imagebam.com/image/9cb81c1130445474

после тсмюксера:

Size: 36550109*184 bytes
Length: 1:48:19.743
Total Bitrate: 44.99 Mbps
Video: MPEG-4 AVC Video / 34011 kbps / 1080p / 23.976 fps / 16:9 / High Profile 4.1
Audio: English / DTS-HD Master Audio / 5.1 / 48 kHz / 2017 kbps / 24-bit (DTS Core: 5.1 / 48 kHz / 1509 kbps / 24-bit)
Audio: Russian / Dolby Digital Audio / 5.1 / 48 kHz / 448 kbps / DN -4dB
Audio: Russian / Dolby Digital Audio / 2.0 / 48 kHz / 384 kbps / DN -4dB
Audio: Russian / Dolby Digital Audio / 5.1 / 48 kHz / 448 kbps / DN -4dB
Audio: Russian / Dolby Digital Audio / 5.1 / 48 kHz / 384 kbps / DN -4dB
Audio: Russian / DTS-HD Master Audio / 5.1 / 48 kHz / 2074 kbps / 16-bit (DTS Core: 5.1 / 48 kHz / 1509 kbps / 16-bit)
Audio: Russian / DTS Audio / 5.1 / 48 kHz / 1509 kbps / 24-bit
Audio: English / Dolby Digital Audio / 2.0 / 48 kHz / 384 kbps / DN -4dB
Audio: English / Dolby Digital Audio / 2.0 / 48 kHz / 384 kbps / DN -4dB
Subtitle: English / 53.665 kbps
Subtitle: Russian / 21.369 kbps
Subtitle: Russian / 22.116 kbps
Subtitle: Russian / 57.104 kbps
Subtitle: Russian / 52.383 kbps
Subtitle: Russian / 0.053 kbps
картинка
http://www.imagebam.com/image/b6ff4a1130445454

Версия тсмюксера 2.6.12
Видео не конвертируется, это понятно, но что-то происходит с битрейтом.

Могу ошибаться, но, кажется, на самом деле программы в m2ts-файле читают битрейт мультиплексора, а не видеопотока.

Реальный средний битрейт видео (и lossless-аудио тоже) вы можете узнать, прогнав диск через BDInfo. Отмечаете там плейлист с фильмом, жмёте Scan Bit Rates и ждёте отчёта.

не совсем понял. Читают данные о потоке, которые “вписаны” в контейнер, а не реальные данные потока?Так? Я думал, что этим грешит медиаинфо, но не бдинфо. Так, ведь, и размер файла m2ts меньше становится. Но, истина где-то рядом. Вытащил видео из обоих m2ts (с помощью eac3to, чтобы тсмюксер отсечь). Файлы чистого видео одинакового размера (разница 4 байта).
Интересная фигня получается: сборка одного видео в сценаристе и тсмюксере даёт разные по размеру m2ts

У мультиплексии есть свой битрейт, это скорость передачи данных до демультиплексирования в плеере. (Вроде, из-за него и существует ограничение максимального суммарного битрейта, но это не точно.) Не помню что там и как в деталях, но tsMuxer, как раз, занижает битрейт мультиплексии.

Здравствуйте , подскажите пожалуйста можно ли tsMuxer немного ужать m2ts файл и если да то как это сделать , а то размер 24.3 Гб и не влазит на 25 Гб диск для записи , обидно из-за одного Гб покупать 50 Гб диск. Не нужные языки я выкинул этой программой , но этого мало.

@nonstop1977, tsMuxer это просто муксер, он не перекодирует. Сжимать видео нужно в других кодерах. Смотрите темы Профессиональные Энкодеры H.264, MVC & DVD и BD Rebuilder - Поджимаем Blu-ray до нужного размера

Понятно , спасибо. BD Rebuilder то , что надо.

Я протестировал tsMuxer + TSM2UHD с файлами x265 (с поддержкой совместимости UHD Blu-ray в x265).
К сожалению, полученный UHD Blu-ray ISO не был воспроизведен. То же самое с DVDFab UHD Blu-Ray Muxer.
Так что пока что кажется, что он работает только с потоками с коммерческих дисков.


I have tested tsMuxer + TSM2UHD with x265 files (with UHD Blu-ray compatibility set in x265).
Unfortunately, the resulting UHD Blu-ray ISO was unplayable. Same with DVDFab UHD Blu-ray muxer.
So it only seems to work for now with streams from commercial discs.

Привет, может быть, источник tsMuxer выпущен на выходные:

https://forum.doom9.org/showthread.php?p=1879559#post1879559

Hi, maybe the tsMuxer source is released for the weekend.