View Full Version : Guide to convert BD 3D to 3D Left+Right Stereoscopic and Anaglyph
r0lZ
20th February 2014, 22:19
IMO, ReduceBy2 (http://avisynth.nl/index.php/ReduceBy2) is a good compromise between speed and quality, and it should be equivalent to the BilinearResize that was the default with the previous versions. Don't forget that the image is divided exactly by 2 (in one direction), and therefore a simple algorithm is more than sufficient to archive good results. It's not like complex resizes with a lot of artifacts. Here, it is theoretically sufficient to merge each pair of pixels in a single pixel, and for that matter, the simpler resize filters do an excellent job, often superior than the complex filters like lanczos or spline. Bicubic is usually not recommended to reduce an image (even by a factor different than 0.5), and bilinear is well known to give better results in that case. Anyway, if you prefer another filter, you can manually edit the script.
pommesmatte
21st February 2014, 12:57
Thanks for the excellent explanation.
Makes sense with the factor 2.
pistacho
23rd February 2014, 17:21
Coming soon ;)
http://111.imagebam.com/download/9z53_xg9qNiwjNV6HzGjSQ/31000/309990414/MVCenc.png
slavanap
23rd February 2014, 18:41
Next version of ssifSource - 4.3
http://rghost.ru/52622403
mplsSource function added to play mpls-files.
Note, it may not work with some mpls-files (duplicate parts may follow at the end of the file. See mpls_tool output for more info).
mpls_tool.exe shows the order in which ssif/m2ts files will follow in the result video.
Run "mpls_tool NNNNN.mpls" and look through "Stream Clips" section.
Cedvano
23rd February 2014, 19:25
Coming soon ;)
http://111.imagebam.com/download/9z53_xg9qNiwjNV6HzGjSQ/31000/309990414/MVCenc.png
Great ! I'm waiting... :o
frencher
23rd February 2014, 23:55
Next version of ssifSource - 4.3
http://rghost.ru/52622403
mplsSource function added to play mpls-files.
Note, it may not work with some mpls-files (duplicate parts may follow at the end of the file. See mpls_tool output for more info).
mpls_tool.exe shows the order in which ssif/m2ts files will follow in the result video.
Run "mpls_tool NNNNN.mpls" and look through "Stream Clips" section.
Good news slavanap ;)
My test with mpls
Script error: there is no function named "mplsSource"
(H:\ssifSource4.3\sample.avs, line 49)
SA_DEMUXER = 0
SA_MUXER = 1
SA_DECODER = 2
# function proto:
# ssifSource(
# string ssif_file, # path to ssif file
# int frame_count, # precise framecount
# bool avc_view = true, # whether to show base view
# bool mvc_view = true, # whether to show dependent view. If 'false' then muxer stage skipped (MVCCombine is not used)
# bool horizontal_stack = false, # whether to stack both views horizontally or vertically
# bool swap_views = false, # whether to exchange views positions (top/bottom, left/right)
# string intel_params = "", # addiditional params for intel decoder. if the first symbol is not '-', then
# # you also should specify video type (mpeg2|h264|vc1|mvc|jpeg)
# bool debug = false, # whether to show debug consoles
# int use_ldecod = false, # whether to use JM decoder instead Intel decoder
# string avc264 = <using_autogenerated_pipename>, # filenames to dump intermediate data (or import data into the pipeline)
# string mvc264 = <using_autogenerated_pipename>,
# string muxed264 = <using_autogenerated_pipename>,
# int width = 1920, # necessary if you don't use demuxer step (ssif_file is not spicified)
# int height = 1080, # you should specify avc264 and/or mvc264 or muxed264 parameter then
# int stop_after = SA_DECODER # stop pipeline at any part (for dumping intermediate data)
# );
# mplsSource(
# string mpls_file, # path to mpls file
# int ssif_path, # path where ssif files is placed (isn't necessary, if you specify mpls file at bluray disc)
# ------------------------
# same as for ssifSource: # these parameters below delivered unchanged to ssifSource function
# ------------------------
# bool avc_view = true,
# bool mvc_view = true,
# bool horizontal_stack = false,
# bool swap_views = false,
# string intel_params = "",
# bool debug = false,
# int use_ldecod = false,
# );
# NOTICE:
# * when mplsSource is used then the error message about what frame is should be decoded next displays incorrectly (it contains wrong frame number)
# * all parameters combinations were not tested. Plugin may crash with wrong parameters
# * not all mpls files are processed correctly (see diagnostic info for what ssif(m2ts) files is used for playing mpls file)
LoadPlugin("ssifSource2.dll")
#ssifSource("..\samples\ISO\BDMV\STREAM\SSIF\00001.ssif", 465, intel_params = "-d3d", debug = true)
mplsSource("P:\BDMV\PLAYLIST\00098.mpls", mvc_view = false, intel_params="-d3d", debug = true)
H:\ssifSource4.3>mpls_tool.exe "P:\BDMV\PLAYLIST\00098.mpls"
P:\BDMV\PLAYLIST\00098.mpls
===========================
Playlist duration: 01:30:58.495
Tracks (13):
type #
------------------------ --
Primary Video: 1
Primary Audio: 4
Subtitle (PGS): 7
Interactive Menu: 1
Secondary Video: 0
Secondary Audio: 0
Picture-in-Picture (PiP): 0
Stream Clips (1):
idx filename duration
--- ---------- ------------
1: 00098.M2TS 01:30:58.495 245632261
Chapters (zu):
idx start time
--- ------------
1: 00:00:00.000
2: 00:13:08.830
3: 00:21:33.542
4: 00:29:12.668
5: 00:39:59.856
6: 00:48:49.051
7: 00:57:00.667
8: 01:08:08.418
9: 01:15:27.148
10: 01:23:50.567
slavanap
24th February 2014, 09:15
frencher,
Looks like wrong version of ssifSource2.dll loaded from somewhere else (maybe from Avisynth "plugins" directory). Specify full path for LoadPlugin function and it'll fix the problem.
I just tested it in a clear environment and it works fine.
LoadPlugin("H:\ssifSource4.3\ssifSource2.dll")
#ssifSource("..\samples\ISO\BDMV\STREAM\SSIF\00001.ssif", 465, intel_params = "-d3d", debug = true)
mplsSource("P:\BDMV\PLAYLIST\00098.mpls", mvc_view = false, intel_params="-d3d", debug = true)
P.S. I'll do a minor fix to ssifSource output to the console later, because info messages now messes up in the console (when use x264 encoder).
@all
EDIT:
The mpls_tool output for wrong mpls files, I told you about, looks like this:
ignore bad chapter
ignore bad chapter (repeats 174 times)
d:\BDMV\PLAYLIST\00020.mpls
===========================
Playlist duration: 05:55:50.078
Tracks (2):
type #
------------------------ --
Primary Video: 1
Primary Audio: 1
Subtitle (PGS): 0
Interactive Menu: 0
Secondary Video: 0
Secondary Audio: 0
Picture-in-Picture (PiP): 0
Stream Clips (302):
idx filename duration
--- ---------- ------------
1: 00021.M2TS 00:01:10.696 3181303
2: 00021.M2TS 00:01:10.696 3181303 (repeats 302 times)
Chapters (zu):
idx start time
--- ------------
1: 00:00:00.000
...
129: 02:29:38.344
Press any key to continue . . .
One part duplicates many times at the end. And the filesize of these mpls files is about 20kB.
Although, these files might be made for infinite playback.
EDIT2:
If mvc_view=true then the plugin uses ssif files (for every part in mpls file) from SSIF folder.
If mvc_view=false then it will use m2ts files for base view decoding.
EDIT3:
For now the plugin doesn't use swap_views autodetection based on mpls file. I will add it soon.
frencher
24th February 2014, 13:16
mplsSource("P:\BDMV\PLAYLIST\00098.mpls", mvc_view = true, intel_params="-d3d", debug = true)
x264 [0.9%] 1129/130874 frames, 10.94 fps, 536.36 kb/s, eta 3:17:44
And with...
mplsSource("P:\BDMV\PLAYLIST\00098.mpls", mvc_view = false, intel_params="-d3d", debug = true)
x264 [1.2%] 1566/130874 frames, 21.83 fps, 1054.84 kb/s, eta 1:38:42
Can you fix path problem ?
Good update ;)
slavanap
24th February 2014, 20:58
Can you fix path problem ?
Good update ;)
Thank you! :)
To fix the "path" problem locate and delete ssifSource2.dll in the folder "c:\Program Files (x86)\AviSynth 2.5\plugins"
frencher
24th February 2014, 23:30
Thank you! :)
To fix the "path" problem locate and delete ssifSource2.dll in the folder "c:\Program Files (x86)\AviSynth 2.5\plugins"
Strange :confused:
http://i59.tinypic.com/5xlxep.png
slavanap
25th February 2014, 00:10
Strange :confused:
http://i59.tinypic.com/5xlxep.png
I see. Then it might loaded from other directory (depends on path variable and the files in directory, from where you start .exe file that loads the .avs file.)
You may see from where dll is loaded with Process Explorer tool, for example. http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
http://oi58.tinypic.com/20gzed1.jpg
r0lZ
25th February 2014, 00:34
You can also use the command prompt and type:where ssifSource2.dll
You should see the locations from your PATH where the dll can be found and loaded by Windows, sorted by order of "preference".
In the case of ssifsource, you should delete all instances referenced by the where command.
frencher
25th February 2014, 10:36
OK i have found the problem
My player load ssifSource2.dll (with magic path) from my player (in same path)
I have just renamed your ssifSource2.dll (4.3) to ssifSource4.dll and works correctly ;)
slavanap
25th February 2014, 21:54
Next version of ssifSource 4.4: http://rghost.ru/52667911
Swap views flag autodetection added (turns on, if no swap_views parameter specified to mplsSource),
Decoding speed increased (with using ldecod.exe instead Intel decoder),
Default parameters a little bit changed (now ldecod decoder is used by default),
dll renamed to ssifSource4.dll, and other minor fixes.
If you detect any bugs, artifacts or other non-proper things with new decoder (ldecod) or plugin itself, please report.
EDIT:
already uploaded but forgot to change the script comment, in sample.avs line 35 should be
# bool swap_views = <autodetection>,
instead
# bool swap_views = false,
r0lZ
26th February 2014, 00:12
Next version of ssifSource 4.4: http://rghost.ru/52667911Hum, I can't go to that page:
Sorry, but rghost.ru is blocked on this network.
This site was categorized in: Pornography
I will try tomorrow with another DNS, but you should consider to post your new versions on a site less questionable.
Decoding speed increased (with using ldecod.exe instead Intel decoder)Really? Ldecod is faster than the Intel lib? I can't believe that!
sef
26th February 2014, 06:03
Thanks slavanap!
use_ldecod = true.. (ldecod has some problem with some BD3D)..
http://i58.fastpic.ru/big/2014/0226/fd/2e4c88cf2361dad60d3f35d2e7ed43fd.jpg
..Decoding speed increased (with using ldecod.exe instead Intel decoder)
At me, ldecod and Intel have same speed: ~10fps..(Core i3 HD 3000)..
frencher
26th February 2014, 06:57
Next version of ssifSource 4.4: http://rghost.ru/52667911
Swap views flag autodetection added (turns on, if no swap_views parameter specified to mplsSource),
Decoding speed increased (with using ldecod.exe instead Intel decoder),
Default parameters a little bit changed (now ldecod decoder is used by default),
dll renamed to ssifSource4.dll, and other minor fixes.
If you detect any bugs, artifacts or other non-proper things with new decoder (ldecod) or plugin itself, please report.
EDIT:
already uploaded but forgot to change the script comment, in sample.avs line 35 should be
# bool swap_views = <autodetection>,
instead
# bool swap_views = false,
With ldecod: Green frames with Ice Age 4 3D
mplsSource("P:\BDMV\PLAYLIST\00098.mpls", mvc_view = true)
x264 (Ultrafast) [0.8%] 1023/130874 frames, 21.06 fps, 390.55 kb/s, eta 1:42:46
With Intel: Good with Ice Age 4 3D
mplsSource("P:\BDMV\PLAYLIST\00098.mpls", mvc_view = true, intel_params = "-d3d", use_ldecod = false)
x264 (Ultrafast) [0.8%] 1027/130874 frames, 11.03 fps, 396.25 kb/s, eta 3:16:15
How use Multi-Angle ?
slavanap
26th February 2014, 11:03
Hum, I can't go to that page:
Sorry, but rghost.ru is blocked on this network.
This site was categorized in: Pornography
I will try tomorrow with another DNS, but you should consider to post your new versions on a site less questionable.
Really? Ldecod is faster than the Intel lib? I can't believe that!
I couldn't know that. Here is another link: http://sendfile.su/946154
They have similar speed now. For me, ldecod is 2fps faster. 12fps vs. 10fps
slavanap
26th February 2014, 11:08
With ldecod: Green frames with Ice Age 4 3D
With Intel: Good with Ice Age 4 3D
How use Multi-Angle ?
Thank you for testing, frencher!! :)
It looks like my expectations about JM decoder haven't met. :( Looks like ldecod.exe just crashed this time.
I'm not sure I can speed up Intel sample_decode.exe decoder, although its sources is available from the Intel Media SDK.
About multi-angle, can you name any title that available in Blu-ray and uses multi-angle?
Does Ice Age 4 3D use multi-angle?
pistacho
26th February 2014, 11:20
BDtoAVCHD Version 2.1.2 (02/26/2014)
New: Ability to shrink 3D Blu-Ray to BD-25 or BD9 keeping 2D+3D ISO MVC format (movie only). The obtained BD9 discs are playable on most 3D Blu-Ray players.
http://111.imagebam.com/download/14b5ksWkflEaq5204_M3cA/31067/310664971/MVCenc2.png
http://forum.doom9.org/showthread.php?t=154957
r0lZ
26th February 2014, 11:47
Here is another link: http://sendfile.su/946154Thanks. I got it now.
They have similar speed now. For me, ldecod is 2fps faster. 12fps vs. 10fpsIs it a new version of ldecod?
frencher
26th February 2014, 13:05
Thank you for testing, frencher!! :)
It looks like my expectations about JM decoder haven't met. :( Looks like ldecod.exe just crashed this time.
I'm not sure I can speed up Intel sample_decode.exe decoder, although its sources is available from the Intel Media SDK.
About multi-angle, can you name any title that available in Blu-ray and uses multi-angle?
Does Ice Age 4 3D use multi-angle?
Yes Ice Age 4 3D use Multi-Angle "00800.mpls" ;)
slavanap
26th February 2014, 14:56
Is it a new version of ldecod?
It is a little bit modified version of JM18.6.
I add OpenMP pragma for one of the most often used function call. Now these calls executes in separate threads.
I can upload the patch file to original JM decoder with this change if you want.
Cedvano
26th February 2014, 15:16
BDtoAVCHD Version 2.1.2 (02/26/2014)
New: Ability to shrink 3D Blu-Ray to BD-25 or BD9 keeping 2D+3D ISO MVC format (movie only). The obtained BD9 discs are playable on most 3D Blu-Ray players.
http://111.imagebam.com/download/14b5ksWkflEaq5204_M3cA/31067/310664971/MVCenc2.png
http://forum.doom9.org/showthread.php?t=154957
I test it, thank you Pistacho
r0lZ
26th February 2014, 16:02
It is a little bit modified version of JM18.6.
I add OpenMP pragma for one of the most often used function call. Now these calls executes in separate threads.
I can upload the patch file to original JM decoder with this change if you want.I see. Thanks.
I don't need the patch. I just wanted to know why that version is faster than the original.
Thalyn
28th February 2014, 08:28
Ha-freakin'-za! Finally got a fully working decode of Pacific Rim without using CoreAVC. SSIFSource4.4, using the JM18.6 path, worked just fine.
Speed wise it's decent but the decoder was taking a huge chunk out of it - I was showing up to 40% of my CPU time (according to the Task Manager in Win8.1) being used for decoding, with x264 often using less than 60% (even when the decoder wasn't using the full 40%) suggesting x264 was being starved for frames. End result was 11.36fps, as compared to around 13fps for FRIM in software, 14fps for MVCSource in software or 15.5fps for DGMVC in hardware (all with matching x264 settings), but at least it worked. CPU in use is an i7 4770K running at 4.2GHz with HT enabled.
It did have an issue with MeGUI, however. It would crash upon attempting to queue the file (APPCRASH in MpegSplitter_mod.ax module) each and every time. Fortunately it would crash after it actually added it to the queue so I could just reload MeGUI and set it to task. I was having difficulties with the debug flag initially but these seem to have abated following a restart (it was crashing even attempting to load the file before queuing it, leaving orphaned tasks).
Gonna give it a crack at Escape in a little bit. Fingers' crossed it should be OK.
Update: Bah! Bah, I say! Escape gets to frame 54,981, then just repeats the end frame until the count is met. MeGUI's log gives the following lines:
[Information] [1/03/2014 4:05:59 AM] Error writing to pipe! | 0x0000006d: The pipe has been ended.
[Warning] [1/03/2014 4:05:59 AM] WARNING: Decoder output finished. Frame separator can't read next frames. Last frame will be duplicated as long as necessary (73368 time(s)).
[Information] [1/03/2014 4:05:59 AM] Error writing to pipe! | 0x0000006d: The pipe has been ended.
[Information] [1/03/2014 4:05:59 AM] Error writing to pipe! | 0x000000e8: The pipe is being closed.
Plus side, it doesn't give the error from earlier. It just seems to lose the pipe at the same place, consistent across two attempts (including multiple restarts between them).
pistacho
1st March 2014, 11:18
DGMVCsource b22 vs. FRIMsource v1.22 vs. MVCsource v2.1.2
Yes! Comparisons are odious (but help to improve) :)
System specs: Intel i7-3770K (Intel HD Graphics 4000)
Graphics drivers: 10.18.10.3345
Test tool: AVSMeter v1.7.6 (by Groucho2004)
AVSMeter.ini
CreateLog=0
PauseBeforeExit=1
FrameRange=0,-1
InvokeDistributor=1
AllowOnlyOneInstance=1
LogEstimatedTime=0
DGMVCsource.avs
LoadPlugin("T:\DOWNLOADS\dgmvcsource100b22\DGMVCdecode.dll")
DGMVCSource("T:\TEMP\CLOUDY WITH A CHANCE OF MEATBALLS 2.avc.h264", "T:\TEMP\CLOUDY WITH A CHANCE OF MEATBALLS 2.mvc.h264", view=0, frames=5000)
FRIMsource.avs
LoadPlugin("T:\DOWNLOADS\FRIM_x86_version_1.22\x86\FRIMsource.dll")
FRIMsource("mvc", "T:\TEMP\CLOUDY WITH A CHANCE OF MEATBALLS 2.avc.h264", "T:\TEMP\CLOUDY WITH A CHANCE OF MEATBALLS 2.mvc.h264", num_frames=5000)
MVCsource.avs
LoadPlugin("C:\Program Files (x86)\BDtoAVCHD\MVCsource.dll")
MVCsource("T:\TEMP\CLOUDY WITH A CHANCE OF MEATBALLS 2.avc.h264", "T:\TEMP\CLOUDY WITH A CHANCE OF MEATBALLS 2.mvc.h264", 5000, 2)
http://111.imagebam.com/download/6O3f2YYHWyVFz2HPnIhRAQ/31126/311259289/DGMVCsource.png
http://109.imagebam.com/download/5cpDm8KNvOKMXamlQArmZA/31126/311259298/FRIMsource.png
http://109.imagebam.com/download/ozFRcLamOliXXng3p10JWA/31126/311259292/MVCsource.png
http://101.imagebam.com/download/Hm_qepRrlf_NyGpyDsbxuw/31126/311259287/Bars-graphic.png
slavanap
1st March 2014, 11:42
Ha-freakin'-za! Finally got a fully working decode of Pacific Rim without using CoreAVC. SSIFSource4.4, using the JM18.6 path, worked just fine.
...
Gonna give it a crack at Escape in a little bit. Fingers' crossed it should be OK.
Update: Bah! Bah, I say! Escape gets to frame 54,981, then just repeats the end frame until the count is met. MeGUI's log gives the following lines:
Plus side, it doesn't give the error from earlier. It just seems to lose the pipe at the same place, consistent across two attempts (including multiple restarts between them).
Thalyn, thank you very much for testing! :)
Does you tried to use parameter use_ldecod=false for ssifSource/mplsSource for Escape? With this param ssifSource plugin will use Intel decoder instead JM18.6.
Also, how many parts Escape consists of? And is there .ssif files in STREAM\SSIF folder for all of them?
Unfortunately, I didn't have MeGUI and didn't tested the plugin with it. As for MpegSplitter, it actively uses Windows COM. This may be the issue. So I'll try to find out whether isolating MPEGSplitter into separate thread can fix this.
P.S. Also you can find out what and where crashed by checking Windows Event Log right after the crash (Start->Run type eventvwr.msc, then at the left pane select Windows Logs -> Application, crashes/errors are marked with red icon; use F5 for update).
Thalyn
1st March 2014, 17:00
Escape's only a single ssif file. I've also got it running off a HDD to get better access times in order to eliminate as many problems and bottlenecks as possible.
I haven't given it a try with the Intel decoder yet. I'll let that run tonight and get back to you on the results. Given my past experiments and experiences I'll leave it with the default settings, which is interestingly suggesting it's using SDK v1.6 - perhaps a little hint as to something you've discovered?
Straight off the bat the CPU usage of Sample_decode.exe is about half, though to be fair this is a different title (I didn't watch Escape's stats when I was using ldecod before). X264 CPU usage is also a bit lower, but it seemed to be hitting the drive quite a lot early on which was lowering its usage further. Perhaps it's MVCCombine that's causing the bottleneck - have you toyed with Neuron2's DGMVCCombine (http://neuron2.net/dgmvccombine/dgmvccombine102.zip) to see if any extra speed can be had (assuming it supports pipes)?
Admittedly it's only just started, it's currently sitting at 11.71fps as compared to the 21.69fps I got previously from FRIM through hardware, but it is slowly climbing. In fact, by the time I reached this part of the post it had hit 11.79fps - though curiously harddrive access has dropped to almost nothing and x264's CPU usage is a tiny 20%!
*update*
Insert a second "Ha-freakin'-za!" here - it appears to have worked. Being an animation it's hard to tell from quick glances if sync is gone (which would indicate missing frames) but it's pretty damned close if it has, so I won't know for certain if there's any problem until I watch it start to finish. Final transcode speed was 12.36fps, so something is definitely slowing it down without using any processor time to do so.
*end*
In more technical aspects, however....
The crash as it's presented when I tell it to queue:
Description:
Stopped working
Problem signature:
Problem Event Name: APPCRASH
Application Name: MeGUI.exe
Application Version: 1.0.2418.0
Application Timestamp: 526ab90e
Fault Module Name: MpegSplitter_mod.ax
Fault Module Version: 1.6.8.7378
Fault Module Timestamp: 530a2a5d
Exception Code: c0000005
Exception Offset: 0002e0e6
OS Version: 6.3.9600.2.0.0.256.48
Locale ID: 3081
As presented in the Event Viewer:
Faulting application name: MeGUI.exe, version: 1.0.2418.0, time stamp: 0x526ab90e
Faulting module name: MpegSplitter_mod.ax, version: 1.6.8.7378, time stamp: 0x530a2a5d
Exception code: 0xc0000005
Fault offset: 0x0002e0e6
Faulting process ID: 0x%9
Faulting application start time: 0x%10
Faulting application path: %11
Faulting module path: %12
Report ID: %13
Faulting package full name: %14
Faulting package-relative application ID: %15
And the accompanying Information entry in the Event Viewer:
Fault bucket , type 0
Event Name: APPCRASH
Response: Not available
Cab Id: 0
Problem signature:
P1: MeGUI.exe
P2: 1.0.2418.0
P3: 526ab90e
P4: MpegSplitter_mod.ax
P5: 1.6.8.7378
P6: 530a2a5d
P7: c0000005
P8: 0002e0e6
P9:
P10:
Attached files:
These files may be available here:
C:\Users\Thalyn\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_MeGUI.exe_972f6e465ca02b3aaaba79883db4cc71935cef5c_00000000_0f94bbb0
Analysis symbol:
Rechecking for solution: 0
Report ID: 4afbef50-a157-11e3-bfe1-74d02b2b53ef
Report Status: 2048
Hashed bucket:
(wish this forum had "spoiler" tags so I could reduce the footprint of this post)
Nico8583
3rd March 2014, 00:11
Hi,
If anyone use Full SBS or TAB, how do you use subtitles ?
Like Half SBS / TAB, is it necessary to make one subtitle for left and one for right ?
Thanks !
r0lZ
3rd March 2014, 01:00
To my knowledge, currently, it is not possible to convert the subtitles to Full-SBS or Full-T&B. If your TV or player is smart enough, it will show the 2D subtitle stream in 3D, but don't expect miracles.
You can, of course, hardcode the subtitles on each view of the video stream (with a small X offset to add 3D-depth), but hardcoded subtitles are not an elegant solution.
Nico8583
3rd March 2014, 12:17
Thanks r0lz, so it's not possible to "duplicate" subtitles on both sides like Half SBS ?
Thalyn
3rd March 2014, 12:36
Theoretically you could create something large enough to span both frames, but it would need to be done using SSA (or similar) or an image-based system (PGS or SUB/IDX). SSA would have to duplicate the same line twice with positioning settings changed appropriately, while image-based methods would just need really, really large images (1920x2160 for full-OU, 3840x1080 for full-SBS) with the appropriate locations and offsets. I don't know if these image-based formats allow for such large frames, though, so that could be a fly in the proverbial ointment.
I should point out that I've never actually tried this myself, however. I'm still doing half-OU encodes for compatibility, and so far I've hard-coded all my subs as I don't have anything I'd be watching without them.
r0lZ
3rd March 2014, 13:10
The problem is that the SUB/IDX format supports only the standard resolutions (PAL, NTSC, 720p and 1080p). (The IDX file contains only a single parameter with the video format, but it doesn't contain the width and height, or a SBS or T&B option.)
It is not difficult to create the large PNG images theoretically suitable for Full-SBS/T&B, as Thalyn suggested, and obtain the right subtitles in PNG/XML format, but there is currently no way to convert them to SUB/IDX. And even if you can manage to convert them correctly, the player will probably not "understand" that unofficial format.
BTW, I have tried to do it for the old version of BD3D2MK3D (that supported Full SBS/T&B encoding), but I have abandoned the idea. I know for sure that BDSup2Sub truncates the PNG files to 1920x1080 anyway, even if you edit the IDX file, for example to set the format to 2160p.
Unfortunately, currently, the only way to display correct 3D subs on a Full-SBS or T&B movie is to hardcode them on the video. With some work, it's possible.
If you are interested, I have written a tool that can convert the original 2D subs to 3D using external tools (ImageMagik and BDSup2Sub++). It works only for Half-* formats, but it can probably be easily adapted to create 2 different SUB/IDX streams, to hardcode them on the right views of the video streams. Also, when I have written the (now obsolete) BD3D2AVS, my first attempt to hardcode the subtitles with a constant 3D offset was made with Crop, AddBorders and Stack commands in the avisynth script, to apply the right offset to the 2 views, but that was very slow. IMO, creating 2 different subtitle streams should be much more rapid. But I guess you don't want to hardcode your subs. Right?
Nico8583
3rd March 2014, 13:32
Thanks for your detailled response :)
No I don't want to hardcode subtitle so thanks for your proposition but I don't need your tool (at least now, but I don't know in the future :) ).
So PNG/XML format might support Full SBS ? What is the interest to convert subs to SUB/IDX ? Or I let original PGS subtitle but I lose 3D depth...
r0lZ
3rd March 2014, 15:23
As far as I know, PNG/XML is only a "temp" format used to prepare the subtitles for an encoder or an authoring program, that converts it to one of the standard formats. Of course, PNG images can have whatever resolution you want. The XML file keeps track of the timings and positions of each individual PNG file. Since it's a text file, you can of course change the positions and store whatever values are suitable for Full-SBS or T&B. But if you cannot convert that file back to a format supported by the MKV container and unknown to most (if not all) players, it's useless.
The problem of the depth is complex. In fact, in a 3D-BD, the depths of each individual subtitle of a particular stream are stored in an extension of the MVC stream. Currently, afaik, there is no practical way to extract that information from the MVC stream (but I've requested that feature and hopefully it will be implemented in tsMuxeR when Roman will have some time). So, currently, you can only add a global depth for ALL subtitles of your subtitle stream (when the stream is converted to Half-3D, or when it is hardcoded on the video). That doesn't make much sense, and some good hardware or software players can already display the 2D subs in 3D, with a constant depth. So, IMO, currently, you can probably live with the original 2D subs and hope that your next TV will be able to display them correctly, with a depth that you can configure yourself. Unfortunately, most 3D TVs (including my Samsung TV) cannot do that. Of course, it will be much useful to convert the subs to 3D later, when it will be possible to use the depth values from the MVC stream, as that will allow us to keep the subtitles with the correct depth and display them exactly like in the original BD.
Converting the subtitles to 3D is currently mainly useful if you read the MKV file with a player that doesn't know that the file is in 3D, and you send its output to a 3D TV. Of course, in that case, you can't use 2D subs, because they will never be duplicated on each view. It's what I do with my LaCie LaCinema HDD and my Samsung TV. But it's still not perfect, because the LaCie resizes the subtitles slightly, and of course, the depth is affected. Also, most players are completely confused if the original video has horizontal black borders that have been cropped when the video has been re-encoded, because the Y position of the subtitles is wrong for the cropped video, and the subtitle is displayed outside of the visible area, or in a completely wrong position. (BTW, It's another important reason to NEVER crop the black bars of a 3D movie shot in Cinemascope format.)
As you can see, displaying correctly non-hardcoded 3D subs is a nightmare, even with Half-SBS or Half-T&B. So, trying to do it with Full SBS or T&B is, imo, almost impossible.
jbuszkie
11th March 2014, 16:27
I've glanced at the start and end of this (long) thread..
I've seen mention of several tools..
Which one should/could I use to create SBS (half is fine)
from a 3D iso created by DVDfab.
The first post seems to outline a process.. but I'm guessing it's outdated? And there is a single tool (or a couple) with a gui that will do that job?
Ability to do something with captions would be a plus!
Thanks!
r0lZ
11th March 2014, 16:48
Yes, the method has evolved greatly, and currently, you can do it with a GUI and much more rapid MVC decoders. BD3D2MK3D converts a BD3D to Half-SBS (or T&B) MKV, with chapters and as many audio and subtitles streams as you want. You can also hardcode the subtitle stream on the video if you wish. The download link is in my signature. You have to install Avisynth if you haven't it already. See the help menu.
There are other GUIs as well, but I prefer to leave their authors present them.
jbuszkie
13th March 2014, 20:51
Thanks!
one quick question.. What version of AVIsynth do I need?
I see a
2.5.8 ST 32bit and
2.6.0 ST 32bit (still in alpha)
I also see some unofficial builds like
2.5.8 MT 64bit
I have 64bit win7
Jim
r0lZ
14th March 2014, 00:24
The "classic" 2.5.8 ST 32bit version is needed. Currently, the 64-bit version is still unstable, and many plugins exist only in 32-bit version. But you can use the x64 version of the x264 encoder (included in the BD3D2MK3D package) with avisynth 32-bit. On a 64-bit machine, that speeds up the conversion a bit.
frencher
14th March 2014, 14:30
The "classic" 2.5.8 ST 32bit version is needed. Currently, the 64-bit version is still unstable, and many plugins exist only in 32-bit version. But you can use the x64 version of the x264 encoder (included in the BD3D2MK3D package) with avisynth 32-bit. On a 64-bit machine, that speeds up the conversion a bit.
Try 2.6.0 MT x86 works with all therads
Threads = 12
SetMTMode(3,Threads) # i7 3930k have 12 Threads
Video = DirectShowSource("Video.mp4", audio=true, convertfps=false).ConvertToYV12()
SetMTMode(2)
jbuszkie
14th March 2014, 20:46
Try 2.6.0 MT x86 works with all therads
Threads = 12
SetMTMode(3,Threads) # i7 3930k have 12 Threads
Video = DirectShowSource("Video.mp4", audio=true, convertfps=false).ConvertToYV12()
SetMTMode(2)
ST vs. MT?? Single Thread and Multi- Thread? Is that what they mean?
frencher
14th March 2014, 21:00
ST vs. MT?? Single Thread and Multi- Thread? Is that what they mean?
Look here (http://www.svp-team.com/wiki/Main_Page) ;)
jbuszkie
14th March 2014, 21:04
Also.. r0lZ, I downloaded you tool.. and pretty cool..
I'd like to say thanks to you.. (and all the others that make these great guis/tools
A couple of specific questions..
First a general one.. You tool just creates a script.. I still have to run the script manually?
Next... The CRF value? the default is 23.. What to people use?
23 only produced a 3-4G file from a 18ish Gig file. That's a SBS as well the quality is cut in half further.
Last.. If I want to use the Multi thread thing... Where do I set that with your GUI?
And thanks again!
Jim
jbuszkie
14th March 2014, 21:10
Look here (http://www.svp-team.com/wiki/Main_Page) ;)
Ok.. I'm missing something... I see something about SVP... But nothing that describes ST vs MT when talking about AVIsynth?
r0lZ
14th March 2014, 23:18
Yes, the batch file must be run manually. I prefer that method. The GUI is only an useless window that consumes resources for nothing during the encoding phase.
CRF 23 gives excellent results for a very good compression ratio. Usually, I lower that value a bit (down to 20) when the image quality of the original movie is extremely important, but it's very rare. 22 or 23 is what I use usually. That default value is very well chosen by the specialist who wrote x264, and I trust them.
And yes, the resulting file may be between 1 and 4 GB, depending of the movie, its length, and the preset used when you encode. With the CRF mode, when you select a slower preset, the quality of the video doesn't change much, but the size of the file is reduced. Anyway, don't worry. 3GB for a movie correctly encoded with x264 is more than sufficient. Can you see a real loss in quality (except the half resolution) ?
Sorry, my GUI is made for the Classic version of avisynth. It doesn't support the MT version directly. And imo the MT version is useless in our case, because x264 needs much more processing power than avisynth, and it is better to give it all treads, and reserve only one thread to avisynth. Of course, if you wish, you can edit the script manually before encoding it, but use the MT avisynth at your own risk.
Thanks for the thanks! :-)
frencher
14th March 2014, 23:38
Hi r0lZ,
After some tests I could see a marked improvement with the latest version of x264 and Avisynth MT to double encoding speed cases.
A bit like when you go x264 process "up" the frame rate will drop down (tested with ldecod method)
Nico8583
15th March 2014, 21:41
Does anyone knows a little BD 3D Demo ISO with subtitles streams ? I have Netblender Demo 3D disc but it doesn't contain any subtitle stream...
r0lZ
15th March 2014, 23:07
There are many short movies given as bonus on the Pixar BDs, but they are part of big BDs. Is it OK for what you want to do?
Nico8583
16th March 2014, 10:52
Yes it should be OK, could you tell me an example ?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.