Log in

View Full Version : D2V Witch: cross-platform D2V creator


Pages : [1] 2 3

jackoneill
16th January 2016, 22:01
https://github.com/dubhater/D2VWitch

Now with a graphical interface.

an3k
18th January 2016, 12:07
Missing dependencies?vapoursynth@encoder:~/D2VWitch$ make -j$(nproc)
CXX src/D2VWitch.o
CXX src/D2V.o
CXX src/FakeFile.o
CXX src/FFMPEG.o
CXX src/MPEGParser.o
src/D2VWitch.cpp: In function ‘bool selectAudioStreamsById(AVFormatContext*, std::vector<int>&)’:
src/D2VWitch.cpp:88:59: error: no matching function for call to ‘std::vector<int>::erase(__gnu_cxx::__normal_iterator<const int*, std::vector<int> >)’
audio_ids.erase(audio_ids.cbegin() + j);
^
src/D2VWitch.cpp:88:59: note: candidates are:
In file included from /usr/include/c++/4.8/vector:69:0,
from src/D2VWitch.cpp:24:
/usr/include/c++/4.8/bits/vector.tcc:134:5: note: std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(std::vector<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = int*]
vector<_Tp, _Alloc>::
^
/usr/include/c++/4.8/bits/vector.tcc:134:5: note: no known conversion for argument 1 from ‘__gnu_cxx::__normal_iterator<const int*, std::vector<int> >’ to ‘std::vector<int>::iterator {aka __gnu_cxx::__normal_iterator<int*, std::vector<int> >}’
/usr/include/c++/4.8/bits/vector.tcc:146:5: note: std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(std::vector<_Tp, _Alloc>::iterator, std::vector<_Tp, _Alloc>::iterator) [with _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<int*, std::vector<int> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = int*]
vector<_Tp, _Alloc>::
^
/usr/include/c++/4.8/bits/vector.tcc:146:5: note: candidate expects 2 arguments, 1 provided
src/D2V.cpp: In member function ‘bool D2V::engage()’:
src/D2V.cpp:332:13: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /home/vapoursynth/include/libavcodec/avcodec.h:4056) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
src/D2V.cpp:332:35: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /home/vapoursynth/include/libavcodec/avcodec.h:4056) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
src/D2V.cpp:344:13: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /home/vapoursynth/include/libavcodec/avcodec.h:4056) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
src/D2V.cpp:344:35: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /home/vapoursynth/include/libavcodec/avcodec.h:4056) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
src/D2V.cpp:348:9: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /home/vapoursynth/include/libavcodec/avcodec.h:4056) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
src/D2V.cpp:348:31: warning: ‘void av_free_packet(AVPacket*)’ is deprecated (declared at /home/vapoursynth/include/libavcodec/avcodec.h:4056) [-Wdeprecated-declarations]
av_free_packet(&packet);
^
make: *** [src/D2VWitch.o] Error 1
make: *** Waiting for unfinished jobs....
vapoursynth@encoder:~/D2VWitch$

Are_
18th January 2016, 12:44
I don't think so, it compiles fine with gcc-5.3.0 but fails with gcc-4.8.5 here, maybe 4.8.x is more nitpicking about something in the code. Don't you have a more recent compiler to try?

an3k
18th January 2016, 12:49
I don't think so, it compiles fine with gcc-5.3.0 but fails with gcc-4.8.5 here, maybe 4.8.x is more nitpicking about something in the code. Don't you have a more recent compiler to try?

No, this is the most recent version on Ubuntu Server 14.04.3 LTS and everything else (including some other projects from dubhater) compile just fine.

jackoneill
18th January 2016, 13:12
I'd say it's a C++11 thing, as in, your compiler doesn't have full support, because it's old. Replace cbegin with begin.

sl1pkn07
18th January 2016, 13:21
@ank3

most recent in your distro no mean most recent in upstream. the latest version available (stable) for public is the version gcc 5.3.0, your distro (Trusty Tahr) ship gcc 4.8.2

an3k
18th January 2016, 15:02
Is D2VWitch Closed GOP aware and knows how to handle these correctly? http://www.mpucoder.com/guides/delaymyth.html

jackoneill
18th January 2016, 15:19
Is D2VWitch Open GOP aware and knows how to handle these correctly?

It is aware. Open GOPs and B frames that can't be decoded without the previous GOP will be marked as such.

Edit: having read the linked page, there is one addition to my answer: D2V Witch assumes that B frames always require two reference frames, even though it's not always true.

jackoneill
30th July 2016, 10:51
Here is D2V Witch with a graphical interface, for anyone interested in testing:
https://ulozto.net/!zJ7H7xnPK/d2vwitch-v2-win32-7z
https://ulozto.net/!jdzfP34kh/d2vwitch-v2-win64-7z

Updated readme.rst: https://github.com/dubhater/D2VWitch/blob/master/readme.rst

Let me know what you think.


* Rename the executable from ``D2VWitch`` to ``d2vwitch`` because no
one likes typing commands with capital letters in them.

* Remux LPCM audio into Wave 64 instead of producing unusable audio
files.

* Guess the channel layout for LPCM audio on DVDs based on the number
of channels, instead of saying it has zero channels.

* Fix occasional crash when demuxing LPCM audio.

* Give audio files proper extensions instead of ``.audio``.

* Add option ``--input-range``, which sets the YUVRGB_Scale field
according to the video's colour range. Make it default to limited
range.

* Add a graphical interface, launched when no command line parameters
are supplied.


On an unrelated topic: I have this impression that D2V Witch is faster than DGIndex. Has anyone compared them in Windows?

Mystery Keeper
30th July 2016, 12:27
Audio demux failed, and there's no preview, even though d2vsource was loaded.

Are_
30th July 2016, 12:28
Looking nice, I have some suggestions (and bugs) though:

It would be nice to enable drag and drop for the input box.
Once you "cut" a video you can't go any-more back to the main window if you plan to cut various scenes.
If the very last frame is selected when cutting an error is thrown, "avformat_open_input() failed: Invalid data found when processing input", because it lets you select one frame more.
The VOB I tested had a PCM audio track, when I did demux it I always got a 104 Bites garbage file instead of an actual audio file.

mariush
30th July 2016, 12:32
I took the liberty of uploading the files to a file host without ads and timers :

Win32: http://savedonthe.net/download/878/D2VWitch-v2-win32.html
Win64: http://savedonthe.net/download/879/D2VWitch-v2-win64.html

Feel free to upload your future files there, there's no files deleted unless it's problem with disk space (unlikely) and files are not being downloaded.

Tiny disclaimer even though it's not needed (because i don't make money off it) : I own the website above.

jackoneill
30th July 2016, 17:34
New binaries:
http://savedonthe.net/download/880/D2VWitch-v2-win32.html
http://savedonthe.net/download/881/D2VWitch-v2-win64.html

The ffmpeg included in the binaries was missing some components needed for LPCM demuxing. That's fixed now.

Audio demux failed, and there's no preview, even though d2vsource was loaded.

If this still happens, I'll need more info. A sample plus anything printed in the box at the bottom.

Looking nice, I have some suggestions (and bugs) though:

It would be nice to enable drag and drop for the input box.
Once you "cut" a video you can't go any-more back to the main window if you plan to cut various scenes.
If the very last frame is selected when cutting an error is thrown, "avformat_open_input() failed: Invalid data found when processing input", because it lets you select one frame more.
The VOB I tested had a PCM audio track, when I did demux it I always got a 104 Bites garbage file instead of an actual audio file.

1. Files can be dropped onto the window now.
2. I haven't decided how to make it possible to index a new file after demuxing some video. However, it is possible to demux several pieces of the same video one after the other, without reopening D2V Witch.
3. It no longer lets you select "extra" frames.
4. Demuxing LPCM audio with the graphical interface works now.

I took the liberty of uploading the files to a file host without ads and timers :

Win32: http://savedonthe.net/download/878/D2VWitch-v2-win32.html
Win64: http://savedonthe.net/download/879/D2VWitch-v2-win64.html

Feel free to upload your future files there, there's no files deleted unless it's problem with disk space (unlikely) and files are not being downloaded.

Tiny disclaimer even though it's not needed (because i don't make money off it) : I own the website above.

Thanks. I'll use it.

jackoneill
31st July 2016, 09:28
Okay, I added some menus. You can use that to open another video from the demuxing page.

http://savedonthe.net/download/882/D2VWitch-v2-win32.html
http://savedonthe.net/download/883/D2VWitch-v2-win64.html

Mystery Keeper
31st July 2016, 18:45
Nothing was printed. I would tell if anything was. First it printed that d2vsource was not loaded. I figured I had to move d2vsource.dll to the standard folder. I usually load plugins from independent special folder. Sorry, but for several more days I shan't be able to provide samples. Oh, and the video was an NTSC .vob with LPCM stereo sound.

jackoneill
9th December 2016, 21:13
No one has complained about anything in a while, so here is v2: https://github.com/dubhater/D2VWitch/releases/tag/v2. It's pretty much the same as the last preview.


* Rename the executable from "D2VWitch" to "d2vwitch" because no one likes typing commands with capital letters in them.
* Remux LPCM audio into Wave 64 instead of producing unusable audio files.
* Guess the channel layout for LPCM audio on DVDs based on the number of channels, instead of saying it has zero channels.
* Fix occasional crash when demuxing LPCM audio.
* Give audio files proper extensions instead of .audio.
* Add option --input-range, which sets the YUVRGB_Scale field according to the video's colour range. Make it default to limited range.
* Add a graphical interface, launched when no command line parameters are supplied.

Sangan
18th December 2016, 22:07
I am having serious problems compiling this on a mac ... Mac OS Sierra. it mainly hangs with this at the ./configure step (the ./autogen.sh runs through smooth):
Package Qt5Core was not found in the pkg-config search path.
Perhaps you should add the directory containing `Qt5Core.pc'
to the PKG_CONFIG_PATH environment variable
No package 'Qt5Core' found
checking for QT5WIDGETS... no
configure: error: Package requirements (Qt5Widgets) were not met:

No package 'Qt5Widgets' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables QT5WIDGETS_CFLAGS
and QT5WIDGETS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

And I am totally at a loss. I brew installed qt5, but from what I found on the net, qt5 for some reason doesnt want to install with neither the said widget nor the core, and because it doesn''t affect homebrew, there is only a cryptic work around I don't understand...
Would you kindly be able to try make binaries for Mac too? If you find the time?

jackoneill
19th December 2016, 13:34
I am having serious problems compiling this on a mac ... Mac OS Sierra. it mainly hangs with this at the ./configure step (the ./autogen.sh runs through smooth):

And I am totally at a loss. I brew installed qt5, but from what I found on the net, qt5 for some reason doesnt want to install with neither the said widget nor the core, and because it doesn''t affect homebrew, there is only a cryptic work around I don't understand...
Would you kindly be able to try make binaries for Mac too? If you find the time?

I have no Apple products.

Is there no Qt5Core.pc anywhere on your computer? Because the error message tells you exactly what you need to do.

Sangan
19th December 2016, 15:22
Actually, there is, yes, I found it (usr/local/Cellar/qt5/5.7.0/lib/pkgconfig/Qt5Core.pc - the Qt5Widgets.pc is there too). So I need to edit the PKG_CONFIG_PATH to set the path right? Where do I do that? (Sorry, I am a real noob with this)

jackoneill
19th December 2016, 17:32
Actually, there is, yes, I found it (usr/local/Cellar/qt5/5.7.0/lib/pkgconfig/Qt5Core.pc - the Qt5Widgets.pc is there too). So I need to edit the PKG_CONFIG_PATH to set the path right? Where do I do that? (Sorry, I am a real noob with this)
It's an environment variable:

PKG_CONFIG_PATH=/usr/local/Cellar/qt5/5.7.0/lib/pkgconfig ./configure
make

Sangan
19th December 2016, 19:11
Cheers, that worked :) . Can it demux audio tracks from a ts like DGindex could?

(I tried with one of my tsses, but it doesn't recognize the audio track to begin with, it only sees the video track. DGIndex kind of messed the audio tracks up too though, it got totally confused with some new headers in the tracks and produces kind of untrimable bullshit though the track plays fine. With MEGui, demuxing the audio with eac3to results in something trimable. I am just so fed up with jumping from mac to wine to Virtualbox/win, which is why I want to try Vapoursyth for encoding. Most elegant would be trimming the audio with something running under MacOS too...)

fAy01
19th December 2016, 20:54
Cheers, that worked :) . Can it demux audio tracks from a ts like DGindex could?

(I tried with one of my tsses, but it doesn't recognize the audio track to begin with, it only sees the video track. DGIndex kind of messed the audio tracks up too though, it got totally confused with some new headers in the tracks and produces kind of untrimable bullshit though the track plays fine. With MEGui, demuxing the audio with eac3to results in something trimable. I am just so fed up with jumping from mac to wine to Virtualbox/win, which is why I want to try Vapoursyth for encoding. Most elegant would be trimming the audio with something running under MacOS too...)

For audio trimming you can use this:
https://github.com/AzraelNewtype/audiocutter

Are_
19th December 2016, 22:12
For audio demuxing/transcoding you can use ffmpeg (https://ffmpeg.org/download.html) or tsmuxer (http://forum.doom9.org/showthread.php?t=168539).

fAy01
19th December 2016, 22:21
Sangan, you'd save yourself a lot of trouble if you were to buy a windows laptop/pc :)

Are_
19th December 2016, 22:32
You'd save yourself a lot of trouble if you were to buy a windows laptop/pc :)

what?

jackoneill
19th December 2016, 22:38
Cheers, that worked :) . Can it demux audio tracks from a ts like DGindex could?


Theoretically. If you give me the first 50 MiB of this transport stream I can have a look at the problem.

Sangan
19th December 2016, 23:40
Theoretically. If you give me the first 50 MiB of this transport stream I can have a look at the problem.
Here it is on mega: https://mega.nz/#!GtgVBbqS!34qyM0F9cYrC6JVxJHvPZdNV73SkwimJkEhiFYyBKyY

Edit:
I have to ad: The issue is neither specific to this ts nor is it specific to this source. Something with the streams has changed on the other end, all the audio tracks have 'grown' in size and pretend to have damaged headers after demuxing in DGIndex (which doesn't give out any errors while demuxing) when trying to trim with Audsub splitter (on VirtualBox/Win). MEGui works solala, it protests when demuxing, but demuxes anyways, though I hear, that it usually protests, not only since something changed on the other end. I also hear that the DGDecIM produces fine demuxed audio tracks, but as I want to get off the multiple systems encoding, I won't try this until there really isn't any other option left.

Sangan
20th December 2016, 10:40
Ooooooh, I see. I am stupid XD. I missed out on ticking that little box where I didn't expect to be one. It demuxes fine now. (Give me a hole to vanish in). The audio track, is there any delay then that I need to take into account or is it set to 0?

Edit: Jupp, there is an unaccounted for delay.

Sangan
20th December 2016, 19:19
@fAy01 . I am trying the audiocutter... I got it right, that this goes, following the example script there straight into my .vps script. But where exactly do I put the audiocutter.py? Somewhere in into the Vaporsynth program folder?... I tried several places, all the wrong ones. The editor when checking the script gives me this: Failed to evaluate the script:
Python exception: No module named 'audiocutter'
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 1491, in vapoursynth.vpy_evaluateScript (src/cython/vapoursynth.c:27905)
File "/Users/yaminoyami/Desktop/5Ds und DM/DM remaster/DM-R-Duelspecial/Duelspecial_DM-GX_167/Encode/167-DM-GX_Duel-Special_TV-T.vpy", line 2, in <module>
import audiocutter
ImportError: No module named 'audiocutter'Failed to evaluate the script:
Python exception: No module named 'audiocutter'
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 1491, in vapoursynth.vpy_evaluateScript (src/cython/vapoursynth.c:27905)
File "/path/to/file.vpy", line 2, in <module>
import audiocutter
ImportError: No module named 'audiocutter'You have any idea or is there a thread that would be more fitting to get help?

fAy01
20th December 2016, 19:36
[QUOTE=Sangan;1790502]@fAy01 . I am trying the audiocutter... I got it right, that this goes, following the example script there straight into my .vps script. But where exactly do I put the audiocutter.py? Somewhere in into the Vaporsynth program folder?... I tried several places, all the wrong ones. The editor when checking the script gives me this: Failed to evaluate the script:

"Installation"

You can safely put audiocutter.py anywhere in your python path, though I recommend creating a scripts folder next to your plugins32 and plugins64 folders, so you can keep the python in the same vicinity as the the compiled plugins you use. You can look at example.vpy to see how you can easily leverage this on windows, though the same principle applies for Linux/OSX with a different path.

Note: Before you leave wherever you're putting the script, check if you can execute mkvmerge from your command line. If you can't, you should edit self.__mkvmerge in __init__ to match the path to your mkvmerge executable. If you're on windows, you should use forward slashes as path delimiters.

Try reading the manual: https://github.com/AzraelNewtype/audiocutter

Sangan
9th January 2017, 11:14
So, some feedback. (I got the audiocutter finally running, though it won't work via vspipe if I go for x264. Well, I run it as a seperate script directly in Python).

Back to D2Witch. From my test streams, to me it looks like it just extracts the audio track. Without giving out a delay or adjusting it. Either I do something wrong (which is always an option, as straight forward as D2Witch is) or it simply can't do this.

jackoneill, could you confirm, if it does adjust the delay and if so, how? (like, I don't see an option and the resulting file looks like it does - it doesn't have a delay in its file name like DGIndex had - but there definitly is a delay that's not adjusted (at least with my streams). The test bit some posts up should have this too.

jackoneill
9th January 2017, 18:49
So, some feedback. (I got the audiocutter finally running, though it won't work via vspipe if I go for x264. Well, I run it as a seperate script directly in Python).

Back to D2Witch. From my test streams, to me it looks like it just extracts the audio track. Without giving out a delay or adjusting it. Either I do something wrong (which is always an option, as straight forward as D2Witch is) or it simply can't do this.

jackoneill, could you confirm, if it does adjust the delay and if so, how? (like, I don't see an option and the resulting file looks like it does - it doesn't have a delay in its file name like DGIndex had - but there definitly is a delay that's not adjusted (at least with my streams). The test bit some posts up should have this too.

The delay isn't even detected, so there is no adjustment.

Can you tell me what delay Wonky_Audio.ts is supposed to have?

Sangan
9th January 2017, 19:38
The delay isn't even detected, so there is no adjustment.

Can you tell me what delay Wonky_Audio.ts is supposed to have?

According to DGIndex: Wonky_Audio PID 110 DELAY -74ms.aac

Megui tells me: Track 2: AAC, 2.0 channels, 256kbps, 48kHz, -724ms (which it tries to shift then, but the outcome is doubtful)

I kind of tend to trust the delay of DGIndex more, or would, if the track would still be usable (at least with AudSub Splitter, which is based on the same Vfr.py as audiocutter and calls MKVMerge, which gives out the errors when using a DGIndex extracted track and none with MeGUI extracted).
I think, generally, D2Witch would be beyond cool, if it could at least read out the delay, so one can work with it.

Mystery Keeper
9th January 2017, 20:27
I also request cutting and direct audio demuxing without conversion, as in DGIndex.

jackoneill
11th January 2017, 10:25
According to DGIndex: Wonky_Audio PID 110 DELAY -74ms.aac

Megui tells me: Track 2: AAC, 2.0 channels, 256kbps, 48kHz, -724ms (which it tries to shift then, but the outcome is doubtful)


And mediainfo tells me -392 ms. lol.

AzraelNewtype
12th January 2017, 05:04
Mediainfo, dgi, and tsmuxer have never agreed about audio delay for me from transport streams. It's kind of maddening.

Sangan
12th January 2017, 10:28
Well, before something with the audio tracks in the streams I use changed around October '16, DGindex was spot on for me. Which is, why I used to trust it. But right now, DGindex' interpretation of the audio track seems to be kind of bullshitty. It can't tell apart mp1/mp3/stereo/mono anymore. Seems to have troubles interpreting the headers.

Sangan
14th January 2017, 17:15
Anyone having a clue how to ad manually a delay in the audiocutter script?
#!/usr/bin/env python3

import vapoursynth as vs
import audiocutter
core = vs.get_core()

ts_file = "file.ts"
ts_in = core.d2v.Source(input='/Users/some/path/some/file.ts.d2v')
ac = audiocutter.AudioCutter()

vid = ac.split(ts_in, [(47813,48709)])

if __name__ == "__main__":
(Indent->) ac.cut_audio(ts_file + '_aud_ac.mka', video_source=ts_file)

Or is there a way at all? (py file of audiocutter: https://github.com/AzraelNewtype/audiocutter/blob/master/audiocutter.py )
I added the delay manually to the .aac file the audiocutter is supposed to search, I tried (name) DELAY -271ms.aac and (name) DELAY -271.aac If I interpret the script for the cutter right, it should detect the delay in the file name. It just doesn't.

fAy01
14th January 2017, 18:34
Anyone having a clue how to ad manually a delay in the audiocutter script?

Or is there a way at all? (py file of audiocutter: https://github.com/AzraelNewtype/audiocutter/blob/master/audiocutter.py )
I added the delay manually to the .aac file the audiocutter is supposed to search, I tried (name) DELAY -271ms.aac and (name) DELAY -271.aac If I interpret the script for the cutter right, it should detect the delay in the file name. It just doesn't.

use quotes, "whatever - DELAY -271.aac"

Sangan
14th January 2017, 19:06
I think, I put it wrong or not clearly... As I interpreted the cutter-script, it picks up the delay from the file name it is supposed to cut. The file name D2Witch generates is like "something.ts.d2v T110 stereo 240 kbps.aac" so I deducted I will have to insert "something.ts.d2v T110 stereo 240 kbps DELAY -271.aac" (or following the pattern DGIndex generated "something.ts.d2v T110 stereo 240 kbps DELAY -271ms.aac"

I cant just put "whatever - DELAY -271.aac" somewhere in my vpy script, I'll get errors without end saying definition or whatever is missing.
In the ac script, in the part below
def cut_audio(self, outfile, video_source=None, audio_source=None):
there is this bit:
delre = re.compile('DELAY ([-]?\d+)', flags=re.IGNORECASE)
ret = delre.search(afile)

delay = '{0}:{1}'.format(tid, ret.group(1)) if ret else None

final_cut = self.__cut_cmd
if delay:
final_cut += " --sync {}".format(delay)
What would I use (or can I use anything at all) to call or trigger this?

Edit: I didn't see anything concerning delay in the example script.

AzraelNewtype
16th January 2017, 06:53
I may not have tested that very thoroughly since I had to start demuxing audio via tsmuxer instead of dgi for a couple reasons (not least of which being that d2vsource is slower than l-smash source). There definitely isn't anything in the script to override that value though.

Selur
30th March 2017, 19:54
both:
"G:\Hybrid\vsfilters\SourceFilter\d2vSource\d2vwitch.exe" --output "H:\Temp\552bf3799f50de80782be5bd932be83e_491.d2v" "F:\TESTCL~1\DVDs\ELEPHA~1\VIDEO_TS"
and
"G:\Hybrid\vsfilters\SourceFilter\d2vSource\d2vwitch.exe" --output "H:\Temp\552bf3799f50de80782be5bd932be83e_491.d2v" "F:\TestClips&Co\DVDs\ElephantsDream\VIDEO_TS"
give me
Failed to open input file 'F:\TestClips&Co\DVDs\ElephantsDream\VIDEO_TS': fopen() failed: Permission denied
Using Vapoursynth 64bit R37 and d2vwitch v2. (same happens with v1)
Also starting the d2vwitch gui and pressing the 'Browse' or 'Add files' button causes a freeze here. Am I missing something? (d2vwitch.exe is alone in a folder, no other files there)
This didn't happen last time I used d2vwitch, but I got no clue what could have changed. (aside from me updating Vapoursynth)
disabling firewall and malwarebytes didn't help either,...

jackoneill
30th March 2017, 20:44
both:
"G:\Hybrid\vsfilters\SourceFilter\d2vSource\d2vwitch.exe" --output "H:\Temp\552bf3799f50de80782be5bd932be83e_491.d2v" "F:\TESTCL~1\DVDs\ELEPHA~1\VIDEO_TS"
and
"G:\Hybrid\vsfilters\SourceFilter\d2vSource\d2vwitch.exe" --output "H:\Temp\552bf3799f50de80782be5bd932be83e_491.d2v" "F:\TestClips&Co\DVDs\ElephantsDream\VIDEO_TS"
give me

Using Vapoursynth 64bit R37 and d2vwitch v2. (same happens with v1)
Also starting the d2vwitch gui and pressing the 'Browse' or 'Add files' button causes a freeze here. Am I missing something? (d2vwitch.exe is alone in a folder, no other files there)
This didn't happen last time I used d2vwitch, but I got no clue what could have changed. (aside from me updating Vapoursynth)
disabling firewall and malwarebytes didn't help either,...

"VIDEO_TS" sounds like a folder. You're supposed to pass the relevant VOB files. D2V Witch currently doesn't guess what files you want to open. It only opens those you pass explicitly, in the order you pass them. (This has always been the case.)

I don't know what the freeze is about. It freezes when you browse to that folder, not when you select the files and click "Open" or whatever, right?

Selur
31st March 2017, 03:42
It freezes directly when I press the 'Browse' or 'Add files' button. I don't get any file dialog.
"VIDEO_TS" sounds like a folder. You're supposed to pass the relevant VOB files.
Ahhh,... that was the problem. Thanks. :)

jackoneill
31st March 2017, 14:10
It freezes directly when I press the 'Browse' or 'Add files' button. I don't get any file dialog.

Ahhh,... that was the problem. Thanks. :)

http://savedonthe.net/download/1821/D2VWitch-fix-file-selector-win64.html

Does this one work?

Selur
31st March 2017, 16:48
Yes, both 'Add files' and 'Browse' now open without crashing.

jackoneill
15th April 2017, 21:58
A test version that might become v3:
http://savedonthe.net/download/1834/D2VWitch-d2vsource-h264-win32.html
http://savedonthe.net/download/1835/D2VWitch-d2vsource-h264-win64.html

The main attraction is H264 support in transport streams and elementary streams.

Test it, maybe, and let me know how it goes.

If you want to compile it:
https://github.com/dubhater/D2VWitch/tree/h264
https://github.com/dubhater/d2vsource

Selur
15th April 2017, 22:13
Is there any gain in using this instead over LSMASHSource or FFMS2, or is it 'just' an alternative?
(alternatives are always good :D, btw. would be nice if mpls files would also be supported :))

Frechdachs
16th April 2017, 12:50
Is there any gain in using this instead over LSMASHSource or FFMS2, or is it 'just' an alternative?
(alternatives are always good :D, btw. would be nice if mpls files would also be supported :))

Neither lsmash nor ffms2 are frame accurate for interlaced h264.

Test it, maybe, and let me know how it goes.

This is the output of the test script from your signature:

Clip has 55828 frames.
Hashing: 99%
Clip hashed.

Requested frame 1, got new frame with hash 92bec1c50ed47b951b3c61c1a07845aa.
Previous requests: 31256 18668 19099 7457 18422 40536 25822 22063 12993 15999 1
Requested frame 3, got new frame with hash 68dbd285aabc4411091783b4e1528ae4.
Previous requests: 48429 20110 51397 36508 49910 32760 21437 24375 7417 1782 3
Requested frame 2, got new frame with hash d81b72522a628d3c28daccbe3f525967.
Previous requests: 36580 18291 10236 40548 16399 19554 42655 40192 10424 50369 2
Test complete.

Worked very well on my test file except for the 2nd, 3rd and 4th frame. Maybe a broken file, I don't know. Those frames look alright in the preview, though.
It's an interlaced h264 transport stream. Both lsmash and ffms2 are completely broken on that one.

Selur
16th April 2017, 14:00
Got a sample d2vwitch.h264 (https://drive.google.com/drive/folders/0B_WxUS1XGCPAUTlILW54VThMTFU?usp=sharing) which the filter can't handle.
Works fine when using LWLibavSource, ffms2 fails on this source too.
Found another one I also uploaded (Trailer 3D_MVC).