Log in

View Full Version : Do any encoder GUIs have these features?


Blue_MiSfit
2nd July 2008, 20:07
Hey guys,

I'm tackling a big project, and I want to get an x264 GUI that has the following features:

* Robust batch encoding support
* Ability to build x264 profiles and apply these profiles to a batch
* Ability to build AviSynth script templates and apply these templates to a batch
* Ability to output to raw .264 streams

Is there anything out there that can do this?

MeGUI sort of can, but it's quite slow and cumbersome to do all these tasks. I'm looking for a workflow like this:

1) Configure an x264 profile and an AviSynth profile
2) Drag and drop source files (Mpeg PS containing MPEG-2) into a batch window and click "go" :)

That's the dream. Something close would be fantastic :)

Thanks!

~MiSfit

stax76
2nd July 2008, 20:23
There is only one which does all of this and I mean really all.

Blue_MiSfit
2nd July 2008, 21:52
I'm assuming you mean StaxRip :)

I'm trying it out, but it seems to have problems with my setup...

1) How can I have StaxRip NOT process audio at all? In other words - have it not even bother running ProjectX on the souces.

~MiSfit

stax76
2nd July 2008, 23:18
have it not even bother running ProjectX on the souces.

It can be disabled in the options under Preperation.

Alfeuss
4th July 2008, 17:04
Have u tried Media Coder? looks like it has all the options you want.

stax76
7th July 2008, 21:37
MiSfit, I wonder how was it going?

Ajax_Undone
8th July 2008, 07:27
Same :)

nessusing
9th July 2008, 22:27
The best batch process of anything in my opinion is always the one you wrote/made yourself.

For batch x264 processing, why dont you write your self a little batch script (assume you use windows)?
You can easily generate AVS script just using batch script as well.

My workflow is extremely simple:
1. Obviously you have a bunch files need to be batched
2. Choose one of them as a sample
3. Process it using MeGUI (or any other GUI program), with a nice GUI you can tweak pretty anything you like.
4. Once it generates a satisfactory output(preferred bitrate/quality, etc), copy the setting it uses in the command line and paste it in your own script. This step assumes your GUI program does display the actual command line arguments it uses which MeGUI does!
5. Runs your script on all files with those settings!

This is pretty much all I need when batch converting video/audio assets. Everything runs in a command prompt which is generally stable, the only thing could crash is the encoder itself or some hardware failure maybe as long as your script does what its suppose to do.

stax76
10th July 2008, 07:37
Assuming you have a batch of files you want to apply on a AviSynth Script and you want StaxRip to perform the task you need to know the following things about StaxRip:

First you need to create a profile for the scripts.

The AviSynth script abstraction:

StaxRip uses a abstraction vor AviSynth scripts. This concept is very powerful but many users have problems to understand the full potential and the usage of it. The main motivation of using such a complex system is that the application can provide instant feedback like if you add/enable a crop or resize filter the application can instantly recalculate image size related values and give feedback about the values like warning of values that violate certain mod restrictions. There are a lot other advantages like there are for instance a lot frontends that require that things have to be performed manually in a certain order, like first creating a AviSynth script. In StaxRip almost any change can be performed at any time, this is only possible using a macro system which is again very powerful but hard to understand for people not familier with such concepts.

This is how you create the AviSynth script tamplate, StaxRip using the naming 'Filter Setup Profile':

Assuming you have a complex script and want to work with it without breaking it down into abstracted filters just open the script for instance drag the script onto StaxRip. StaxRip will put the entire script code into the source filter, assuming the script does all necessary filtering the check boxes for the subsequent abstracted filters should be disabled. Next step is to replace the file path for the source filter with a macro for the source file. In the main dialog double-click the source filter in order to open the editor for the filter. Replace the filepath with the macro %source_file%, for MPEG2Source it would look like 'MPEG2Source("%source_file%")'. Close/confirm with OK. You have now a single abstracted filter containing the complete script code, if you want to reuse this script later you can create a 'Filter Setup Profile' which you do as follows:

In the main menu select 'Profiles/Filter Setup/Edit...', click 'Add...', select 'Current Project', click OK, enter a name for the filter setup profile, click OK.

If you made special settings like codec settings you want to use in combination with the filter setup at a later time you can create a project template now. The configuration is done now.

In order to create the batch jobs now do:

Open the Source Files Dialog, you can now drag your batch files directly on the 'File Batch' button or you can click the 'File Batch' button and use the file browser which support multiselect, you can also click cancel in the file browser and drag the files onto the Source Files Dialog which is after clicking cancel in the file browser in File Batch mode now. As you can see there are a lot goodies that are not obvious like dragging files on a button, you have to play around to find out such things because they are not always documented. You constanly have to think might this control support double-click, might this control support drag & drop, might this control have a context menu. Once you confirm the Source Files Dialog dialog a job is generated for every file, that's it.

I hope this wasn't too intimidating, once you learned all the concepts you can apply your knowledge to other applications using the same or similar concepts designed for experienced software enthusiasts.

leiming2006
10th July 2008, 14:31
my x264 gui can do that all except the "output raw .264 stream"
it's designed to batch encoding.
if you like to have a try.

Blue_MiSfit
12th July 2008, 00:00
Thanks for all the feedback guys!

I'm going to give StaxRip another try - I see tremendous potential, but a steep learning curve.

I already have an in-house designed batch processing system, but its very inflexible, and doesn't lend itself to easy modification / profiling. BUT, it's very good at doing a lot of stuff at once. I can literally point it at a toplevel directory (containing many subdirectories, each with one MPG/VOB), pick one of its hardcoded profiles, and tell it to go. It will then add a series of jobs to the queue, and when it's all finished I have a TS in the same folder as each MPG. Very cool :)

I will report back!

~MiSfit

Blue_MiSfit
12th July 2008, 01:50
Okay, so I got a template script written - here it is:


MPEG2Source("%source_file%", cpu=0)

tfm.tdecimate.vinverse

Colormatrix(mode="rec.709->rec.601")
HDRAGC(corrector=.35, reducer=1.5, coef_sat=.8)
fft3dfilter(sigma=3, plane=3, ncpu=2)
fft3dfilter(sigma=2, sigma2=1.7, sigma3=1.3, sigma4=.8, plane=0, ncpu=2)


I set the output container to null muxer, and I've made an x264 profile compliant with my hardware decoder, but I'm still a little confused about batch output.

My file structure is like this:

Toplevel->ID#->VIDEO_TS->file.mpg

I have many ID#'s to process, 24 per season, for a total of 96.

Is there a way to simply select the toplevel, and have StaxRip iterate through and add a job for each found MPG file?

Unfortunately, sometimes there are many other files in each VIDEO_TS folder. Sometimes I've gone in and created d2v's ahead of time, or even written AVS scripts ahead of time.

Is there a way to make StaxRip ONLY target MPG files?

~MiSfit

RunningSkittle
12th July 2008, 02:47
...Is there a way to make StaxRip ONLY target MPG files?...



^^Yes, in the command line preparer options.

have you looked at the staxrip CLI? The CLI + NT batch is REALLY powerful, especially when iterating through subdirectories using something like the following command.

"for /r c:\path %%a in (*.mpg) do (call :staxrip "%%a")
:goto endstaxrip
:staxrip
::commands here; filenames are passed as %1::
echo %1
goto eof
:endstaxrip

:eof

With NT batch, you can do just about anything, assuming you can pass a file name to it. With that command, staxrip really isnt even needed. Just a few commands to pass file names to the avisysnth script, and an encoder that takes avisynth input. You can pipe text to a text file with a command like:


echo MPEG2Source(%1, cpu=0) >> c:\file.avs
echo. >> c:\file.avs
echo tfm.tdecimate.vinverse >> c:\file.avs
echo. >> c:\file.avs
echo Colormatrix(mode="rec.709->rec.601") >> c:\file.avs
echo HDRAGC(corrector=.35, reducer=1.5, coef_sat=.8) >> c:\file.avs
echo fft3dfilter(sigma=3, plane=3, ncpu=2) >> c:\file.avs
echo fft3dfilter(sigma=2, sigma2=1.7, sigma3=1.3, sigma4=.8, plane=0, ncpu=2) >> c:\file.avs

stax76
12th July 2008, 08:02
Is there a way to simply select the toplevel, and have StaxRip iterate through and add a job for each found MPG file?

It's not possible to select a dir to create a job for every file found within the dir or sub dirs. Do you remember the search method I described in another thread? This could be used. Another way could be using the folder batch mode instead of the file batch mode, this require each dir containing only one episode.

Is there a way to make StaxRip ONLY target MPG files?

You mean using folder batch mode would pick up mpg files instead of d2v files?

Blue_MiSfit
19th July 2008, 01:07
So, I'm actually very impressed.

I was able to create the necessary profiles, and by cleaning out my directory structure I was able to queue up a bunch of encodes at once!

Now my last question is this:

My script is pretty slow, and doesn't MT. So - when I encode, I get ~40% utalization on my quad. Can I force two parallel encodes??

~MiSfit

stax76
19th July 2008, 03:21
Unfortunately StaxRip can't process jobs in parallel, possibly using a second StaxRip instance could work, let's say you have a couple of jobs added, when you open and close the settings dialog, StaxRip saves the joblist as it's part of the settings, when you now open a second StaxRip instance, you can enable half of the jobs in the first instance and the second half in the second instance. Running the joblists of both instances in parallel would then hopefully be possible.

Honeyko
19th July 2008, 19:34
have you looked at the staxrip CLI?
I hate to be the turd in the punchbowl at this party, but the whole point of a GUI anything is so that the user does not have to deal with command-line gobbledegook.

==//==

Honeyko's Dream Rip GUI would do to the following:

* Accept any audio or video format, and support drag-drop. (Kudos! MediaCoder.)

* Is also a player supporting frame-by-frame advance in PAR view-mode, and can freeze a frame and zoom it until the pixels are the size of elephants (see crop tools below).

* Never, ever automatically launches a browser window for anything unless you specifically want it to. (Boo! MediaCoder.)

* Feature a regularly-updated list of powerful filters (because filters are absolutely necessary for dealing with crap-quality sources). Multiple filters can be mouse-click selected, sub-settings tweaked, and their order adjusted. (This is probably the most important item on the list, because an otherwise perfect GUI without them is utterly useless for quality rips from bad sources such as half of DVDs in existence, all VHS, and most non-HD TV captures.)

* "Templates" of a user's favorite settings can be made, and later applied to any other project. ALL settings.

* Ability to convert or "assume" video FPS and audio re-time on-the-fly (Kudos! AutoMKV)

* Have a smart crop tool for ready consumption by intelligent human beings who zoom snapshots and count rows and columns of "bad" pixels. (Kudos to AutoMKV for having a non-sucky crop tool.) Will calculate crop-adjusted DAR and either apply it anamorphically (if necessary) to x264/MKV output, or at least place the value in a logfile (so users wanting XviD output can fix it later with MPEG4modifier).

* Have queue features which are more advanced than the venerable AutoGK: I should be able to add, remove, and edit waiting queued items on-the-fly while earlier ones on the list are already processing, as well as shuffle their order.
-- "Gray out", rather than completely remove, completed items in a queue list. (I very frequently run a dozen different filter combinations over a sample clip, and if several of them cause conflicts which result in no output, it's very annoying to have to figure out which combination caused the problem). In fact, if there's an audio or video-processing error, the offender should be so designated (i.e., "red out").
-- Each item in the queue list is outputed with a unique, automatically-generated time-based filename, and a unique associated txt log.

* Have a "Pause" feature which also automatically engages upon any I/O problem (e.g., disk full, network connection to remote drive dropped, etc). "Pause" parameters are automatically saved in order for the GUI to resume after shutdown/restart (e.g., severe thunderstorm bearing down, and you need your equipment OFF NOW.) Pause automatically engages if AC-power is interrupted on laptops (option: default YES). The user should never lose more than one write-cache (5mb-ish) worth of encoding time.

* Automatically includes/installs MPEG4modifier and AVImuxGUI as child-applications, and calls them for final DAR-anamorphism and muxing of XviD output.

* (Further brilliant and useful wish items to be added later.)