Log in

View Full Version : StaxRip


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [53] 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

colinhunt
29th September 2017, 18:26
Ran into a problem with 1.7.0.0 just now. Source has AC3 audio (stereo 384kbps, nothing out of ordinary), asked Staxrip to convert that into a 192kbps aac for muxing into final .mkv output. Done that hundreds of times with earlier versions of Staxrip. But 1.7.0.0 stopped the task at audio encoding, claiming "The format of the source file could not be detected". In the log file I found this:

[ac3 @ 00000000023200a0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 11520 >= 11520

and

--------------- Error Audio encoding 1 using eac3to 3.31 ---------------

Audio encoding 1 using eac3to 3.31 failed with exit code: 1 (0x1)

The exit code might be a system error code: STATUS_WAIT_1

The exit code might be a system error code: Incorrect function.


------------------ Audio encoding 1 using eac3to 3.31 ------------------

C:\Users\xxxxxx\Desktop\videotools\StaxRip-x64\Apps\eac3to\eac3to.exe "E:\TEMP\MB 20131206_temp\MB 20131206 ID1 52ms Korean.ac3" "E:\TEMP\MB 20131206_temp\MB 20131206 ID1 Korean_a1.m4a" -quality=0.76 -normalize +52ms -progressnumbers

The format of the source file could not be detected.

------------------ Audio encoding 1 using eac3to 3.31 ------------------

C:\Users\xxxxxx\Desktop\videotools\StaxRip-x64\Apps\eac3to\eac3to.exe "E:\TEMP\MB 20131206_temp\MB 20131206 ID1 52ms Korean.ac3" "E:\TEMP\MB 20131206_temp\MB 20131206 ID1 Korean_a1.m4a" -quality=0.76 -normalize +52ms -progressnumbers

The format of the source file could not be detected.

Start: 20:17:49
End: 20:17:49
Duration: 00:00:00

mparade
29th September 2017, 19:29
The only other source filter that support hardware decoding is DSS2/DirectShowSource but it's probably 8-bit only.

It seems like taking forever for Nvidia to debug the hardware accelerated decoding of HEVC 10bit streams through CUDA (I have been waiting for it for two weeks now and nothing seems to be happening in the thema). Regarding software decoding of HEVC 10bit streams what are the possibilities in Staxrip?

wallander
1st October 2017, 07:28
Hallo
@stax76: Thank you for your hard work at this wonderful tool.

Since 1.7.0.0 I have a little problem.
When Demuxing with ffmpeg is active (ts->mkv) [h264] staxrip demuxes only one audio track. In MediaInfo are both tracks (german Audio & Audiodiskription) shown. In Project Option is "Show Dialog" at tzhe Dropdown Audio Demux active.
The Dialog shows only one Audiotrack.

When I deactivate demuxing with ffmpeg - everything is o.k.

stax76
2nd October 2017, 02:38
When Demuxing with ffmpeg is active (ts->mkv) [h264] staxrip demuxes only one audio track. In MediaInfo are both tracks (german Audio & Audiodiskription) shown. In Project Option is "Show Dialog" at tzhe Dropdown Audio Demux active.
The Dialog shows only one Audiotrack.

I don't know how better TS default handling could look like, before it was just demuxing, much likely resulting in av sync issues. If you can't find anything else there is always still dgdecnv.

It seems like taking forever for Nvidia to debug the hardware accelerated decoding of HEVC 10bit streams through CUDA (I have been waiting for it for two weeks now and nothing seems to be happening in the thema). Regarding software decoding of HEVC 10bit streams what are the possibilities in Staxrip?

Default is:

FFVideoSource(srcpath, colorspace = "YUV420P8")

You can change the default at: Filters > Profiles

If you remove the colorspace parameter you will get a ten bit format, the reason why it's not default is x265 is currently the only encoder that can handle it, I tried nvenc and it produces an error, it's something that should be to be requested on the nvenc issue tracker.

Ran into a problem with 1.7.0.0 just now. Source has AC3 audio (stereo 384kbps, nothing out of ordinary), asked Staxrip to convert that into a 192kbps aac for muxing into final .mkv output. Done that hundreds of times with earlier versions of Staxrip. But 1.7.0.0 stopped the task at audio encoding, claiming "The format of the source file could not be detected". In the log file I found this:

I've not changed anything that would explain the problem, it's still the same eac3to version, a alternative processing method would be:

If you enable fdkaac or qaac it would be converted to FLAC/W64 using ffmpeg by default, if you don't use fdkaac or qaac you still can have it converted with ffmpeg like so:

in the project options on the audio tab enable:

Convert Method: ffmpeg
Convert Format: FLAC or W64
Force conversion: Check

ffmpeg creates a FLAC file then and eac3to would use the FLAC file instead of reading the ac3 file directly.

What I'm missing somehow during daily reencoding is something unorthodox:
That would be some batch tool to make out videos which could be far better compressed by i.e. reencoding them with x265 and some user given settings.
I know that there is a compressibility check available for two-pass encodings but it's a hassle to use for this purpose as it's not batch-friendly.

After all I'm missing some tool that would go over a list of videos, do a rather quick compression check and give me the candidates with the best compression gain.

Been already looking for some tool like that... but I guess it's too special? Or too nonsense?

What would make sense is a CLI script (using powershell or python for instance) to show things like compressibility, projected file size etc. If somebody creates a issue on the tracker there is a chance that I'll write such a script in better days, maybe somebody else experienced in encoding and coding has interest to write such a script.

I'm not much into working on staxrip lately and I find working on better documentation is what is needed most.

@Atlantis
@Nikos

I'm usually not that idealistic but AV1 and Opus are free (like MKV) so I like to help making those formats popular, the reason why fdkaac is not included in staxrip or ffmpeg is the non free license.

No one knows? Can you encode HDR?

If you have a HDR source and have x265 enabled prior opening the source file, the latest build will read HDR info from the source and set the according x265 options, you can use the built in MediaInfo viewer to verify if your source contains HDR info.

If you have a regular HD source you can use:

Main Menu > Tools > Scripts > Convert Bluray (BT709) to 10bit 400nits (MaxFALL) HDR

which script do you use for audio normalization with ffmpeg?

Right now only following is supported:

-af volumedetect
-af volume=1dB

Please create a issue on the tracker if you would like to have more options, development is slow these days, maybe I also pause forum support for some time so the issue tracker is the only way to ensure no reqests get forgotten.

wallander
2nd October 2017, 06:29
Hallo stax76,
thank you for your feedback.
What happens with my ts-file (h264) when Demuxing with ffmpeg ist deactivated? Staxrip encodes audio & video without demuxing?
Are there known problems with audio-video sync?

In the versions before there was no possibility for demuxing ts-files in the basic settings. What is the from your point of view the best method? Demuxing before encoding with one audio-track or encoding without demuxing with one track.

Again - Thank you for your great work.

wallander
2nd October 2017, 07:46
hallo stax,
after changing I get the following crash:

---------- Error ffmpeg: Re-mux TS to MKV using ffmpeg 3.3.3 ----------

ffmpeg: Re-mux TS to MKV using ffmpeg 3.3.3 failed with exit code: 1 (0x1)

The exit code might be a system error code: STATUS_WAIT_1

The exit code might be a system error code: Unzulässige Funktion.


------------- ffmpeg: Re-mux TS to MKV using ffmpeg 3.3.3 -------------

D:\PortableSuite\Video\StaxRip-x64-1.7.0.0\Apps\ffmpeg\ffmpeg.exe -i "G:\Cut\Test Wendemanöver.ts" -c -sn -y -hide_banner "G:\Cut\Test Wendemanöver_temp\Test Wendemanöver.mkv"

Input #0, mpegts, from 'G:\Cut\Test Wendemanöver.ts':
Duration: 00:05:40.86, start: 69955.054278, bitrate: 5836 kb/s
Program 10301
Stream #0:0[0x13ed]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
Stream #0:1[0x13ee](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
Stream #0:2[0x13ef](mis): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
Unknown encoder '-sn'

------------- ffmpeg: Re-mux TS to MKV using ffmpeg 3.3.3 -------------

D:\PortableSuite\Video\StaxRip-x64-1.7.0.0\Apps\ffmpeg\ffmpeg.exe -i "G:\Cut\Test Wendemanöver.ts" -c -sn -y -hide_banner "G:\Cut\Test Wendemanöver_temp\Test Wendemanöver.mkv"

Input #0, mpegts, from 'G:\Cut\Test Wendemanöver.ts':
Duration: 00:05:40.86, start: 69955.054278, bitrate: 5836 kb/s
Program 10301
Stream #0:0[0x13ed]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
Stream #0:1[0x13ee](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
Stream #0:2[0x13ef](mis): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
Unknown encoder '-sn'

Start: 08:41:32
End: 08:41:32
Duration: 00:00:00

------------------------------ Exception ------------------------------

StaxRip.ErrorAbortException: ffmpeg: Re-mux TS to MKV using ffmpeg 3.3.3 failed with exit code: 1 (0x1)

The exit code might be a system error code: STATUS_WAIT_1

The exit code might be a system error code: Unzulässige Funktion.


------------- ffmpeg: Re-mux TS to MKV using ffmpeg 3.3.3 -------------

The arguments looks like This:
-i "%source_file%" -c -sn -y -hide_banner "%temp_file%.mkv"

stax76
2nd October 2017, 07:46
Sorry, edit it like so:

-c copy -map 0 -ignore_unknown

wallander
2nd October 2017, 07:52
Great!
Thank you.
Now I can demux both audio tracks.

mparade
2nd October 2017, 13:29
Does Staxrip support losslessly compressed avi files (e.g. Huffyuv 4:2:2 YUY2 or Lagarith 4:2:2 YUY2) as input? I would like to encode them using x265.

Thanks.

stax76
2nd October 2017, 15:04
Does Staxrip support losslessly compressed avi files (e.g. Huffyuv 4:2:2 YUY2 or Lagarith 4:2:2 YUY2) as input? I would like to encode them using x265.

Thanks.

It should support anything supported by AviSynth or VapourSynth. In the newest build you can choose the manual workflow template to show a dialog with a list of source filters that support AVI.

mparade
2nd October 2017, 21:18
It should support anything supported by AviSynth or VapourSynth. In the newest build you can choose the manual workflow template to show a dialog with a list of source filters that support AVI.

Do you know what this can be?:

resize [warning]: converting from yuyv422 to yuv422p
resize [warning]: converting from yuv422p to yuv420p

I am not resizing the source which is 720x576i, 25fps, in YUY2 colorspace. I am using Avisource without any colorspace convesrions.

Please help.

Atlantis
3rd October 2017, 01:48
Thank you very much Stax76 that was the secret. I opened the HDR files in the default preset and after I set it to x265 there was no HDR info.

As you said if I choose x265 first and then load the HDR file, the HDR info is loaded.

stax76
3rd October 2017, 03:27
@mparade

For avi there is l-smash and ffms2. avisource would require a installed vfw decoder.

http://staxrip.readthedocs.io/tools.html#ffms2

http://staxrip.readthedocs.io/tools.html#l-smash-works


@Atlantis

Maybe creating a template with x265 would make sense in your case.

http://staxrip.readthedocs.io/features.html#templates

sneaker_ger
3rd October 2017, 10:30
I am not resizing the source which is 720x576i, 25fps, in YUY2 colorspace. I am using Avisource without any colorspace convesrions.
x264 outputs YUV 4:2:0 by default. If the input is in a different format and --output-csp is not set accordingly it will rescale the input.

mparade
3rd October 2017, 11:11
x264 outputs YUV 4:2:0 by default. If the input is in a different format and --output-csp is not set accordingly it will rescale the input.

Thanks for the useful info. I have setup a 422 profile in x264. I thought it autmatically set up the --output-csp accordingly. It is a PAL VHS captured in YUY2 format (576i, 25fps). Finally, I converted the colorspace to YV12 using an avs script before feeding the input in x264. Do you think I have lost any visual quality? Anyway, nearly all filters needs YV12 to work, so conversion would be a must.

Thank you very much for the help.

mparade
3rd October 2017, 11:16
@Stax

For avi there is l-smash and ffms2. avisource would require a installed vfw decoder.

I have Huffyuv on my system installed which can decompress the source (that one was used for capturing too).

I think I will not lose much if I convert my VHS captures to Yv12 first using the avs script, then feed the x264 with the already converted colorspace.

Thank you very much for your nice program. Very nice too that the 64-bit version of applications can be used.

Yanak
3rd October 2017, 15:27
Hello Stax,
I doubt what it is possible but just in case i'm missing something i will ask.
I use MP_Pipeline for a lot of things to run x86 plugins inside Staxrip, right now i have a few custom "Source Filters" set for each tasks involving x86 plugins, my concern is that i have to set them like this :
Custom_Source_Filter =
MP_Pipeline("""
### platform: win64
$select:msg:Select Source Type;LogoRemove LSMASHVideoSource|LoadPlugin("%startup_dir%Apps\Plugins\avs\L-SMASH-Works\LSMASHSource.dll") LSMASHVideoSource("%source_file%", format = "YUV420P8");LogoRemove LWLibavVideoSource|LoadPlugin("%startup_dir%Apps\Plugins\avs\L-SMASH-Works\LSMASHSource.dll") LWLibavVideoSource("%source_file%", format = "YUV420P8");LogoRemove FFVideoSource|LoadPlugin("%startup_dir%Apps\Plugins\both\ffms2\ffms2.dll")FFVideoSource("%source_file%", cachefile = "%source_temp_file%.ffindex", colorspace = "YV12");LogoRemove AviSource|AviSource("%source_file%", Audio = False)$
### ###
### platform: win32
x86 filters here
### ###
""")
All the $select part in bold brings up a popup working a bit like the manual source filter :
https://s14.postimg.org/t7imj7tch/80037520171003161026.png
What i would like to know is if i can somehow replace this part with a function calling the automatic source function that will set this part of the script like automatic source does. A bit like :
Custom_Source_Filter =
MP_Pipeline("""
### platform: win64
Call Automatic Source loading Macro/Function
### ###
### platform: win32
x86 filters here
### ###
""")
and it will use the source filters defined in Tools > Settings > Source Filters to set the appropriate source at this line of the script, ending then in something like :
MP_Pipeline("""
### platform: win64
LoadPlugin("%startup_dir%Apps\Plugins\avs\L-SMASH-Works\LSMASHSource.dll") LSMASHVideoSource("%source_file%", format = "YUV420P8")
### ###
### platform: win32
x86 filters here
### ###
""")

Or whatever appropriate source filter and plugin will be needed there depending of the source file type.

Like i said i really doubt there is a solution for this but we never know, there is so many functions and possibilities in this tool that maybe i missed it.

End goal is to regroup all my custom source filters using mp_pipeline in a single one and have the process more automated instead of having lot of steps and a source filter for each different uses.

Thanks a lot.

stax76
3rd October 2017, 19:29
I don't know if Logo processing is desirable for default handling and I don't have experience with mp_pipeline.

In the newest build the 'No indexing and demuxing' template has a automatic source filter implementation.

Logic in VB pseudo code:

if extension = "mp4" then
LSMASHVideoSource(sourceFile)
else
DSS2(sourceFile)
end if

AviSynth code (not very elegant but works...):

srcFile = "%source_file%"
ext = LCase(RightStr(srcFile, 3))
(ext == "mp4") ? LSMASHVideoSource(srcFile, format = "YUV420P8") : DSS2(srcFile)

Used AviSynth features:

http://avisynth.nl/index.php/Operators#For_Booleans

http://avisynth.nl/index.php/Internal_functions#String_functions

mparade
3rd October 2017, 19:40
@stax76

Is it possible to process DVD-folder, 3D Blu-ray structure (AVC-MVC) with StaxRip?

DVD-folder - similarly like it can be done with BD folder;
3D BD (MVC)- to other formats like Full SBS, Full Tab;

stax76
3rd October 2017, 20:33
StaxRip is much older (since 2002) then makemkv, before vob file input was used, this workflow is still supported but some DVD structures cause issues due to tools in this workflow cannot handle such structures well, in particularly when processing subtitles. Many US users prefer the old workflow to deal with field processing and many US users don't process subtitles, for PAL users makemkv is much better. You would open vob in staxrip using the 'Merge Files' source opening method.

3D BD I don't know, certainly not without user customization.

Yanak
3rd October 2017, 20:48
Thanks stax,
I'm in a hurry so i have not tested yet but will do later at night, did not thought about this, as always you are a savior, thanks a lot, this is brilliant.

I use Mp_Pipeline for a remove logo plugin, and quite some other things, here it was just an example, i load source in manual mode when i need something specific done and select one of the mp_pipeline custom source filters for the task.

MP_Pipeline needs to have the source loaded and the loadplugin for it in the same part of the script, like here :

MP_Pipeline("""
### platform: win64
LoadPlugin("%startup_dir%Apps\Plugins\avs\L-SMASH-Works\LSMASHSource.dll") LSMASHVideoSource("%source_file%", format = "YUV420P8")
### ###
### platform: win32
x86 filters here
### ###
""")

It can't use the auto loaded plugins at the very start of the script nor get a source file passed there with a variable ( did not tried srcFile= method but will also give it a try, who knows it might work used this way. )

Not sure yet how i will do this but will explore the links and do by trial and error as always. Probably possible to combine the loadplugin and source in the same line of code or at worst i will make 2 lines, probably like this :

(ext == "mp4") ? LoadPlugin("%startup_dir%Apps\Plugins\avs\L-SMASH-Works\LSMASHSource.dll") : LoadPlugin("%startup_dir%Apps\Plugins\avs\DSS2mod\DSS2.dll")

(ext == "mp4") ? LSMASHVideoSource(srcFile, format = "YUV420P8") : DSS2(srcFile)

And so on for a few more type of source files and plugins needed, or not bother and just load all plugins in this part of the script so it will be done, as long as the rest works and select the right plugin it should be good enough.

Again thanks a lot for the help, you opened a lot of new possibilities for me, now i will probably be busy for a few days working on this ^^

mparade
3rd October 2017, 22:57
StaxRip is much older (since 2002) then makemkv, before vob file input was used, this workflow is still supported but some DVD structures cause issues due to tools in this workflow cannot handle such structures well, in particularly when processing subtitles. Many US users prefer the old workflow to deal with field processing and many US users don't process subtitles, for PAL users makemkv is much better. You would open vob in staxrip using the 'Merge Files' source opening method.

3D BD I don't know, certainly not without user customization.

Thanks again for the answer and great software. I will check your software on my DVD-collection soon (They are PAL and mostly only the main feature will be processed). So, the more "problematic" will be recognizing the 3D BDs correctly using StaxRip. Even if I converted them using makemkv the result would be a very large 3D mvc format inside a container. I know generally how to build up an avs script for a mvc-sbs conversion using FrimSource but not exactly know what "user customization" should exactly mean in that regard. In my experience with BD-RB a lot of bandwidth can be saved (even with a low crf value, like 16 or so) with an sbs/tab method compared to the original mvc encoded source.

stax76
3rd October 2017, 23:11
You can add custom filters like FrimSource at:

Filters > Profiles

Before opening a 3D source you would select FrimSource or you can use the 'Manual Workflow' template, staxrip would show a dialog then where you can select FrimSource.

Magik Mark
4th October 2017, 00:47
Stax,

Can't find the download links anymore

stax76
4th October 2017, 00:57
The new location is here:

http://staxrip.readthedocs.io/intro.html#download

The google drive app had a high CPU usage bug so I replaced it with dropbox.

Magik Mark
4th October 2017, 01:17
Thanks!

Yanak
4th October 2017, 15:57
Hi Stax i ended up with this :
MP_Pipeline =
SetFilterMtMode("MP_Pipeline",MT_SPECIAL_MT)
MP_Pipeline("""
### platform: win64
srcFile = "%source_file%"
ext = LCase(RightStr(srcFile, 4))

(ext == ".mov") || (ext == ".mp4") || (ext == ".m4v") || (ext == ".264") || (ext == "h264") || (ext == ".avc") || (ext == ".265") || (ext == "h265") || (ext == "hevc") || (ext == ".hvc") ? LoadPlugin("%startup_dir%Apps\Plugins\avs\L-SMASH-Works\LSMASHSource.dll") : \
(ext == ".d2v") ? LoadPlugin("%startup_dir%Apps\Plugins\avs\MPEG2DecPlus\MPEG2DecPlus64.dll") : \
LoadPlugin("%startup_dir%Apps\Plugins\avs\DSS2mod\DSS2.dll")

(ext == ".mov") || (ext == ".mp4") || (ext == ".m4v") ? LSMASHVideoSource(srcFile, format = "YUV420P8") : \
(ext == ".264") || (ext == "h264") || (ext == ".avc") || (ext == ".265") || (ext == "h265") || (ext == "hevc") || (ext == ".hvc") ? LWLibavVideoSource(srcFile, format = "YUV420P8") : \
(ext == ".avi") || (ext == ".vdr") ? AviSource(srcFile, Audio = False) : \
(ext == ".d2v") ? MPEG2Source(srcFile) : \
DSS2(srcFile)

### ###
### platform: win32
X86 Filters Here
### ###
""")
Not the most elegant stuff but it does the job nicely, thanks again for the help on this.

Now if i can bother you a bit again I have another question ( it will be my last one for a while i promise ) : Can i call and insert in my scripts a filter with a simple macro ? Something like :
%Add_filter:name_of_the_filter%

That will insert itself inside the script at the line where it is called ( not like the CLI switch that gets added at the end of the script )

Goal is to then make all my x86 custom filters inside a user created filter category and then in the source script above list and call them in a blink with a prompt
$select:msg:Select x86 filter;filter1|%Add_filter:Logo_Remover%;filter2|%Add_filter:VirtualDubx86Plugins% $

### ###
### platform: win32
$select:msg:Select x86 filter;filter1|%Add_filter:Logo_Remover%;filter2|%Add_filter:VirtualDubx86Plugins% $
### ###
""")

some of the x86 filters i use in Mp_Pipeline already have loads of prompts, input boxes or browse file in them and it's a pain as some things can not be nested , for example : https://pastebin.com/e0kJbsdx

But if it is possible to call & insert a filter with something like %Add_filter:name_of_the_filter% i'll just have to turn all my things into filters for a easier and quicker use.
Then create a selection prompt to add them where i want in my scripts, It will also make the possibility to use and add pure x86 avisynth filters way more easily than it is now, probably eliminate some of the nesting issues too and allow some loops too i guess, this will be the ultimate icing on the cake :D



Thank you .

mparade
5th October 2017, 07:31
@stax76

If I have several .avi containers and during import I select "merge files" is it possible to set chapter points at the merging points? I just want to jump to the merging points in the final output file, is it possible? In Vdub I will prepare the files for StaxRip. I could save my files as 1 pc of long avi. In this case I would need to determine the scene changes for StayRip to encode properly. Or I can save as multiple avi files which then would be merged with StaxRip but in this case the merging points should be the chapter points as well. Does Staxrip have some chapter handling capability (in case of merged container files, not BD input)?

Thank you very much.

Magik Mark
5th October 2017, 11:27
Stax

I get this error everytime encoding is finish and staxrip is set to "close" AND my Chrome browser is open and active:

https://s1.postimg.org/784iv8165n/Stax_Error.png (https://postimg.org/image/784iv8165n/)

mparade
5th October 2017, 16:58
You can add custom filters like FrimSource at:

Filters > Profiles

Before opening a 3D source you would select FrimSource or you can use the 'Manual Workflow' template, staxrip would show a dialog then where you can select FrimSource.

I will check it shortly because I could save ~50% of bitrate with this mvc - full sbs conversion method using FrimSource and x264 with a low crf value if works (aim is visual transparency which is subjective). Do you recommend a conversion stage at first in makemkv before feeding StaxRip? Or should I try directly a 3D BD folder? As far as I know, it was not easy for other softwares as well to implement 3D handling capabilities.

Thanks again. The results of my first 2D BD projects are
excellent (no bugs found yet and I really like the large number of functions, capabilities available). Thank you for the great program I am much obliged.

stax76
5th October 2017, 20:14
Can i call and insert in my scripts a filter with a simple macro ? Something like :
%Add_filter:name_of_the_filter%

Yes you can using the eval_ps macro, create a script containing a function that returns your filter:


$s = [ShortcutModule]::s

function GetFilter($name)
{
foreach ($i in $s.AviSynthProfiles)
{
foreach ($i2 in $i.Filters)
{
$temp = $i2
if ($name -eq $temp.Name)
{
return $temp.Script
}
}
}
}


Then in your eval_ps macro argument you can import your script using powershell's dot sourcing.

%eval_ps:. C:\Users\Frank\AppData\Roaming\StaxRip\Scripts\test.ps1; GetFilter("RemoveGrain")%

info about dot sourcing:

http://jeffwouters.nl/index.php/2015/07/powershell-what-is-dot-sourcing-and-why-use-it/

If I have several .avi containers and during import I select "merge files" is it possible to set chapter points at the merging points?

For merging staxrip uses either dgmpgdec or mkvmerge, it don't support creating chapters at the merge points and I don't know if there is an easier way than writing script code, here is a tool you can try:

https://forum.doom9.org/showthread.php?t=169984

I get this error everytime encoding is finish and staxrip is set to "close" AND my Chrome browser is open and active:

It's fixed in the next build.


Or should I try directly a 3D BD folder? As far as I know, it was not easy for other softwares as well to implement 3D handling capabilities.

I remember a staxrip issue with 3D and eac3to but I don't remember details.

mcjordan
5th October 2017, 22:28
Latest mkvtoolnix (v16.0 r01574/r01572; on r01570 this behavior is not present)
gone in heaven on final muxing phase with error aka:

----------------- Error Muxing using mkvmerge 16.0 x64 -----------------

Muxing using mkvmerge 16.0 x64 failed with exit code: -1073740940 (0xC0000374)

The exit code might be a system error code: A heap has been corrupted.
---
In log under that I've a doubled section of "Muxing using mkvmerge 16.0 x64" etc. mkvtoolnix command line order. Muxing failed in this case.
I've not made screenshot (may be later; now is after midnight), but on error window I see numerous VBS line tags.
I'm under Win 10 LTSB. Тomorrow on а fresh head I'm going to investigate this case... Sorry for disturbance.

mcjordan
6th October 2017, 09:21
Here is screenshot of failed muxing:
http://imgbox.com/y6RHSFjJ#

Yanak
6th October 2017, 13:43
Hi Stax,
the last bits of code works nicely, always learning something new with you and this will serve me for some things i had in plan but had no idea how to do it until your last answer, but for my import filter last question sadly i cannot use this code inside a
$select:msg:Select x86 filter;bla|bla;blabla|blabla$
because of the semi colon inside the eval_Ps line breaking it all
%eval_ps:. %script_dir%Import_Filter.ps1; GetFilter("Rotate")%
I think i will not bother more with this part, i need to take time and rethink my approach of this problem, think at another way for doing what i want, probably directly using powershell to set all parameters, might be longer to code such thing for the noob i am but giving less issues in the end.


Now i have to figure out why as long as i have "LWLibavVideoSource" in my filter the program launches -- Index LWLibav -- sequence, each time i open or close a preview ... either with this in a ternary expression like code posted earlier here : http://forum.doom9.org/showthread.php?p=1820703#post1820703

or using it in a source filter having Gscript on it like here :

Source_Filter_Test =
srcFile = "%source_file%"
ext = LCase(RightStr(srcFile, 4))
if ( (ext == ".avi") || (ext == ".vdr") ) {
AviSource(srcFile, Audio = False)
}
else if ( (ext == ".mov") || (ext == ".mp4") || (ext == ".m4v") ) {
LSMASHVideoSource(srcFile, format = "YUV420P8")
}
else if ( (ext == ".264") || (ext == "h264") || (ext == ".avc") || (ext == ".265") || (ext == "h265") || (ext == "hevc") || (ext == ".hvc") ) {
LWLibavVideoSource(srcFile, format = "YUV420P8")
}
else if ( (ext == ".d2v") ) {
MPEG2Source(srcFile)
}
else {
DSS2(srcFile)
}
It have to be compressed into a single line to avoid formating issues in the profiles manager but this works.

As long as LWLibavVideoSource(srcFile, format = "YUV420P8") is present on the code filter Staxrip launches --- Index LWLibav -- processes on file load, even if the file is an avi using avisource for example, then this --- Index LWLibav -- process is also launched each time the preview is opened or closed. Tested also outside MP_Pipeline and same results when code above is used as a regular source filter. once i remove the LWLibavVideoSource part it works nicely as expected...

Seems also to work ok outside staxrip in avspmod but once inside Staxrip filter it launched the index process, i spend last hours trying to figure this out and starting to have a headache now.

Thanks a lot.

Taurus
6th October 2017, 19:44
This is what I get trying Avisynth+ new "mClean" on any suitable SourceFilter/ or any encoder.

https://thumbs.imgbox.com/05/66/NMiWjaSt_t.png (http://imgbox.com/NMiWjaSt)

All other new scripts (Finesharp,etc.) are doing fine

mparade
6th October 2017, 20:50
You can add custom filters like FrimSource at:

Filters > Profiles

Before opening a 3D source you would select FrimSource or you can use the 'Manual Workflow' template, staxrip would show a dialog then where you can select FrimSource.

StaxRip told: "3D demuxing is not supported"
Additionally, there should be some syntax errors in this as well:

FRIMSource = SBS=FRIMSource(codec="mvc",filename="%source_file%",filename_dep="%source_file%",layout="sbs",ts=true,platform="sw",cache=24,num_frames=%frame_count%)
VIEW1 = Crop(SBS,1920,0,1920,1080)
VIEW2 = Crop(SBS,0,0,1920,1080)

stax76
6th October 2017, 22:05
@mcjordan

Please also try mkvtoolnix 15.0.0 and post the full log file if it persists.

Now i have to figure out why as long as i have "LWLibavVideoSource" in my filter the program launches -- Index LWLibav -- sequence, each time i open or close a preview ... either with this in a ternary expression like code posted earlier here : http://forum.doom9.org/showthread.ph...03#post1820703

Is it really indexing or just reading the index file, the l-smash index file can be large like 1GB and just reading it can take 10-20 sec.

This is what I get trying Avisynth+ new "mClean" on any suitable SourceFilter/ or any encoder.

mClean 1.8 with x264 works here on Win 10 and Win 7.

StaxRip told: "3D demuxing is not supported"

I can't find a sample otherwise I would try to add support.

Additionally, there should be some syntax errors in this as well:

What error do you get?

Yanak
6th October 2017, 22:29
Is it really indexing or just reading the index file, the l-smash index file can be large like 1GB and just reading it can take 10-20 sec.
The window process pops out quickly.
If i add cache = true , like LWLibavVideoSource(srcFile, cache = true, format = "YUV420P8")
The .lwi file is sometimes created where the source file loaded is located, depends the file extension loaded, most often nothing is created, but there is a problem anyways, it goes too fast for an indexing and the log tell me this :
---------------------------- Index LWLibav ----------------------------

C:\Users\Yanak\Desktop\StaxRip-x64-1.7.0.1-test\Apps\ffmpeg\ffmpeg.exe -i "H:\TEMP\Eisenwald 2017-08-17 11-51-34-58_temp\Eisenwald 2017-08-17 11-51-34-58.avs" -hide_banner

Input #0, avisynth, from 'H:\TEMP\Eisenwald 2017-08-17 11-51-34-58_temp\Eisenwald 2017-08-17 11-51-34-58.avs':
Duration: 00:00:52.70, start: 0.000000, bitrate: 0 kb/s
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 60 fps, 60 tbr, 60 tbn, 60 tbc
At least one output file must be specified

Start: 23:43:26
End: 23:43:27
Duration: 00:00:00

that was for a .avi file loaded

For a mp4 i get this kind of message :
---------------------------- Index LWLibav ----------------------------

C:\Users\Yanak\Desktop\StaxRip-x64-1.7.0.1-test\Apps\ffmpeg\ffmpeg.exe -i H:\TEMP\00_temp\00_new.avs -hide_banner

[avisynth @ 000000000054a800] AviSynth version is too old. Please upgrade to either AviSynth 2.6 >= RC1 or AviSynth+ >= r1718.
H:\TEMP\00_temp\00_new.avs: Unknown error occurred

Start: 23:24:59
End: 23:24:59
Duration: 00:00:00
Strange message as i use last avs+ version ...

Those log entries get created each time i load a file + each time i open or close the preview mode, each time i load a file a file having an extension not supposed to trigger this source filter i mean, if i load a hvc or h264 input it works as supposed.

I can't figure out why this gets triggered while the extensions of the input files are not supposed to trigger it, also i don't demux sound or anything for those avi's or mp4's, it's a mystery for me.

Thank you.

stax76
6th October 2017, 22:42
The automatic indexing isn't really designed for having multiple source filters in the source section, maybe you could put your automatic source detection code in a avsi file, this would disable automatic indexing.

Yanak
6th October 2017, 22:48
Will try this method yes, at least for the LWLibavVideoSource that gives the problem, if i remove LWLibavVideoSource from the source filter all works perfectly fine...
Will try to add it into a separate script and see if i can call it only when needed, in case the input file extension is needing it only.

Thank you very much for the help Stax, very kind from you to answer us for such things, and learning a bit more each day with all this.

Edit :

Importing from avsi having this only in it : LWLibavVideoSource(srcFile, format = "YUV420P8") and following code works :
srcFile = "%source_file%"
ext = LCase(RightStr(srcFile, 4))
(ext == ".mov") || (ext == ".mp4") || (ext == ".m4v") || (ext == ".264") || (ext == "h264") || (ext == ".avc") || (ext == ".265") || (ext == "h265") || (ext == "hevc") || (ext == ".hvc") ? LoadPlugin("%startup_dir%Apps\Plugins\avs\L-SMASH-Works\LSMASHSource.dll") : \
(ext == ".d2v") ? LoadPlugin("%startup_dir%Apps\Plugins\avs\MPEG2DecPlus\MPEG2DecPlus64.dll") : \
LoadPlugin("%startup_dir%Apps\Plugins\avs\DSS2mod\DSS2.dll")
(ext == ".avi") || (ext == ".vdr") ? AviSource(srcFile, Audio = False) : \
(ext == ".mov") || (ext == ".mp4") || (ext == ".m4v") ? LSMASHVideoSource(srcFile, format = "YUV420P8") : \
(ext == ".264") || (ext == "h264") || (ext == ".avc") || (ext == ".265") || (ext == "h265") || (ext == "hevc") || (ext == ".hvc") ? import("H:\import.avsi") : \
(ext == ".d2v") ? MPEG2Source(srcFile) : \
DSS2(srcFile)

Should have tried this earlier to avoid hours of headache testing various options today, had nose pointed inside this for too long and it did not even came to my mind before :/.

Thanks again Stax, i think i will just bypass it this way.

mparade
6th October 2017, 23:25
@stax76

I can't find a sample otherwise I would try to add support.

I can provide and upload it for you just do not know if I should convert it to mkv first or should cut the original m2ts container.Maybe the first one is better for you because the dependent view file located in the 3D BD folder can be separated from the main view container file as well (more than one storage method (only 2 exist as far as I remember) is determined in the 3D BD standard). But, makemkv can convert it to a uniform frame-packed format which can be handled more easily as a 3D source hopefully. :thanks:

P.S. I really do not know how to cut an ISO file properly for you to test.

stax76
6th October 2017, 23:36
It might be sufficient when I only see the eac3to info about the video stream.

Blackshadow
7th October 2017, 04:23
Me to Same error 3d demuxing not supported pls add support to convert blue ray 3d into full SBS

mparade
7th October 2017, 09:45
It might be sufficient when I only see the eac3to info about the video stream.

@stax76

This is happening after using as input one of 3D BD (including an SSIF folder) in eac3to:

C:\Users\x\Downloads\eac3to331>eac3to "F:\"
1) 00801.mpls, 01151.m2ts, 1:32:30
- Chapters, 28 chapters
- h264/AVC (left eye), 1080p24 /1.001 (16:9)
- h264/MVC (right eye), 1080p24 /1.001 (16:9)
- DTS Master Audio, English, multi-channel, 48kHz
- AC3, English, multi-channel, 48kHz
- AC3, Spanish, multi-channel, 48kHz
- AC3, French, multi-channel, 48kHz
- AC3, Portuguese, multi-channel, 48kHz
- AC3, Bulgarian, multi-channel, 48kHz
- AC3, Hungarian, multi-channel, 48kHz
- AC3, Polish, multi-channel, 48kHz

mparade
7th October 2017, 14:35
In case of an SSIF folder exists inside the STREAM folder (1st method of storing 3D content on commercial BD-s):

1) 00098.mpls, 00098.m2ts, 2:00:21
- Chapters, 13 chapters
- h264/AVC (left eye), 1080p24 /1.001 (16:9)
- h264/MVC (right eye), 1080p24 /1.001 (16:9)
- TrueHD, English, multi-channel, 48kHz
- AC3, Czech, multi-channel, 48kHz
- AC3, Hindi, multi-channel, 48kHz
- AC3, Hungarian, multi-channel, 48kHz
- AC3, Polish, multi-channel, 48kHz
- AC3, Russian, multi-channel, 48kHz
- AC3, Turkish, stereo, 48kHz

In case of no SSIF folder exists inside the STREAM folder
(2nd method of storing 3D content on commercial BD-s)

1) 00800.mpls, 00543.m2ts, 1:48:32
- Chapters, 22 chapters
- h264/AVC, 1080p24 /1.001 (16:9)
- DTS Master Audio, English, multi-channel, 48kHz
- AC3, Hungarian, multi-channel, 48kHz
- AC3, French, multi-channel, 48kHz
- AC3, Spanish, multi-channel, 48kHz

So, the second one (in-muxed method) might be difficult for eac3to to recognize as 3D.

After importing this m2ts (with in-muxed mvc content) into tsMuxer, I got the window like the one as attached:

http://s1.toldacuccot.hu/letoltes?sid=12b34f72a5ee1691fcbe9de4eab7a187&file=tsMuxer+-+in-muxed+m2ts+import.jpg

Blackshadow
7th October 2017, 15:14
I created an avs script with bd3d2mkv3d from blue ray 3d and then load the avs script with staxrip error cant load dgmvc 32 bit dll on 64 bit stax rip second i tried with frim source it showing error that intel sdk version
i tried to emulate avs script with avs virtual mount which virtualy mount the script to .avi file then i can import the file in staxrip for encoding but the problem is that file size become so large bcuz raw video 4 min video is 40 gb so if i compress it file size is even larger than original !! So anyone have any idea that how can i import avs script created with bd3d2mkv3d into staxrip

mparade
7th October 2017, 15:33
I created an avs script with bd3d2mkv3d from blue ray 3d and then load the avs script with staxrip error cant load dgmvc 32 bit dll on 64 bit stax rip second i tried with frim source it showing error that intel sdk version
i tried to emulate avs script with avs virtual mount which virtualy mount the script to .avi file then i can import the file in staxrip for encoding but the problem is that file size become so large bcuz raw video 4 min video is 40 gb so if i compress it file size is even larger than original !! So anyone have any idea that how can i import avs script created with bd3d2mkv3d into staxrip

I think the best way would be to load the 3D BD folder directly into StaxRip then decode the original avc-mvc source using FrimSource 64 bit version then using x264-10 bit with low crf to output a Full SBS file which will be visually transparent to the original. The output will be much smaller than the original in this case even at a crf=16 value, let's say.

mcjordan
7th October 2017, 20:20
Frank, sorry for delay.
With mkvtoolnix v15.0 the problem does not exist.
But with v16.0 (from r01572 onwards) muxing does not realized.
Here is log of an example:
https://pastebin.com/A1ih1etp

Yanak
7th October 2017, 20:32
Hello Stax,
SOrry to bother you again but i'm stuck with this ,

Before starting to add all my options needed i made a script to test easily like this :

function Mp_Pipeline_Select {
$Menu_Select = new-object "TaskDialog[string]"
$Menu_Select.MainInstruction = "Select Mp_Pipeline Mode"
$Menu_Select.AddCommandLink("Vegas DebugFrameserver Import" , "debugFrameserver")
$Menu_Select.AddCommandLink("Logo Remove by Coords" , "logo_coords")
$Menu_Select.AddCommandLink("Logo Remove by Area" , "logo_area")
$Menu_Select.AddCommandLink("VirtualDub Plugins" , "virtualdubplugins")
$selectMode = $Menu_Select.Show()
$Menu_Select.Dispose()

if ($selectMode -eq "debugFrameserver") {
$selected = "turnright"

} elseif ($selectMode -eq "logo_coords") {
$selected = "flipvetical"

} elseif ($selectMode -eq "logo_area") {
$selected = "reverse"

} elseif ($selectMode -eq "virtualdubplugins") {
$selected = "fliphorizontal"

} else {exit}

return $selected
}

and for now calling it via a filter :
Testing = %eval_ps:. %script_dir%Mp_Pipeline_Select.ps1; Mp_Pipeline_Select%

- If i go to the filters editor and click on preview tab it launches the script and returns correctly the value I selected.

- If i add the filter on a empty project, no input video loaded at all, Staxrip only started, the script will runs twice for some reasons.

- If i load an input video file and after add the filter the script runs in infinite loop, i click the option i want on the popup and it comes back again and again each time i select an option, and i have to alt+f4 Staxrip.

I'm probably doing something wrong here but i'm lost in this now and have to query again your precious help.

Thanks in advance.

Merlin93
8th October 2017, 12:03
Hey folks,

Is there a way to perform cuts or encodes based on chapters using Staxrip? I couldn't find the answer to in the new documentation website, nor via searches to this thread. It is probably something simple I'm just overlooking.

For example, I'd like to be able to cut out the long intermission sequence in the middle of the movie Alexander. In my MKV file, this intermission is chapter 27 (02:04:52.443 to 02:06:21.632). I'd like to be able to remove it (and chapter 27) from the output file. Based on what I've seen of the cut commands in the preview screen, I should theoretically be able to remove this segment manually by finding the frame associated with 02:04:52.443 and the frame associated with 02:06:21.632 and then mark the segment between them to be cut, however that seems rather inefficient. Plus I suspect it would not automatically modify the chapter information in the output file to remove chapter 27 and resync the rest of the chapters.

As an additional example, for some anime and TV shows, they are extracted from the video disc media as a single multi-chapter source file and then need to be split into separate episodes using chapter numbers when encoding them. Right now I have to use Handbrake for those since it is simple to encode by chapter using Handbrake (and I have a ton of anime in my library to convert.) Though I'd like to eventually be able to use Staxrip for that as well.

Obviously, I can use MKVToolNix to break up each source file into episodes by chapter before encoding. In theory, I could also use this technique to remove chapter 27 from the Alexander movie MKV as well. But, it is a pain and certainly isn't efficient... particularly if I'm just looking to isolate a chapter for a test encode, for example.

I assume there is an easy way to do stuff like this in Staxrip that I'm not seeing. Hopefully, someone here can explain the proper way to approach these kinds of challenges.

Thanks!