Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > (HD) DVD, Blu-ray & (S)VCD > (HD) DVD & Blu-ray authoring

Reply
 
Thread Tools Search this Thread Display Modes
Old 1st March 2015, 12:41   #701  |  Link
Sharc
Registered User
 
Join Date: May 2006
Posts: 3,997
I tested Pacific Rim with FRIMsource (plugin).
=> No glitches, but MPC-HC crashes when trying to seek.

Tests with FRIMdecode:
- H.264 3D to L/R.yuv => o.k.
- H.264 3D into standard O/P and pipe to x264 SBS => o.k.
No issues found so far. All test in SW only.

Last edited by Sharc; 1st March 2015 at 15:10.
Sharc is offline   Reply With Quote
Old 2nd March 2015, 10:23   #702  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
You cannot seek. Afaik, currently no MVC decoder plugin for avisynth support seeking. The crash is normal. Of course, it would be better if FRIMSource could issue a warning when it detects a seek operation instead of crashing, but it's not the most important improvement to do!

I know that Donald Graft has the intention to add seek support to its MVC decoders (including DGMVCSource), but that will probably require to create an index file, and it's still not implemented.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV

Last edited by r0lZ; 2nd March 2015 at 10:25.
r0lZ is offline   Reply With Quote
Old 2nd March 2015, 23:18   #703  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 452
I'm still looking for a solution to use FRIMencoder from STDin using a pipe from AVS2YUV (Avisynth) or VSPIPE (Vapoursynth).

This time I get at least an error code, so maybe this can somehow help to see why it's not working as it should.

Code:
avs2yuv -raw "input.avs" -o - | FRIMEncode -i - -o::h264 "ffms_stdin.h264" -w 640 -h 360 -f 29.970
This doesn't work, the encoder stops at frame 0 and produces an empty file. (see error report in my previous posts.)

However this works brilliant :
Code:
FRIMEncode -avi -i "input.avs" -o::h264 "ffms_stdin.h264" -w 640 -h 360 -f 29.970
Now I have also tried with VSPIPE (Vapoursynth), and I finally got an error code :
Code:
>> vspipe "vyp.vpy" -   | FRIMEncode -i - -o::h264 "4k_ffms_stdin.h264" -w 640 -h 360 -f 29.970
FRIM Encoder version 1.24 (build: Feb 27 2015)
 - based on Intel(R) Media SDK

Media SDK impl          HARDWARE (2) - D3D9 (C:\Program Files\Intel\Media SDK\libmfxhw32.dll)
Media SDK version       1.11
Memory type             System
Async depth             4

Input  format           YUV420

Output video            AVC
Source picture:
  Resolution            640x368
  Crop X,Y,W,H          0,0,640,360
Destination picture:
  Resolution            640x368
  PAR                   0:0
  Crop X,Y,W,H          0,0,640,360
Frame rate              29.970
Bitrate control         CBR
  bitrate               1711
GOP structure:
  GOP length            30
  I-/P-frame distance   4
  IDR-frame interval    0
  GOP type              Opened
Num of slices           4
Target usage            4 (balanced)

Processing started
Frame number: 0
Processing finished in 0.00 seconds
Error: fwrite() call failed when writing frame: 0, plane: 0, line: 32, errno: 22
Output 10 frames in 0.06 seconds (160.26 fps)
>>
Maybe this can shed some light on my problem.
Is this coming from the encoder or from VSPIPE ?
Any idea what this errno 22 at line 32 means ?

I was thinking about what you said about being sure that AVS2YUV or VSPIPE or outputting indeed YV12 video.
Could the encoder maybe struggle with I420 video ?
The only difference I know is that YV12 has the U and V channel swapped compared to I420 and it would cause bad colors in the encoded files.
Could you please consider to add a yuv4mpeg-video demuxer to your encoder/decoder ?
YUV4MPEG-video is also a raw uncompressed format mostly identical to raw uncompressed YV12, but it contains the video properties(colorspace, resolution, FPS, ..) in the headers.
It's supported by FFMpeg, X264, X265 and a lot of other tools/encoders/decoders.


Another thing I noticed is that reading AVI's is limited to 2GB (even on Win7 NTFS).
When trying to encode larger AVI files, I get an error that frame X can not be read :
Code:
FRIMEncode -avi -i "2K_ffms2.avi" -o::h264 Max_limit_AVI.h264" f 60 -w 1920 -h 1080
FRIM Encoder version 1.24 (build: Feb 27 2015)
 - based on Intel(R) Media SDK

Media SDK impl          HARDWARE (2) - D3D9 (C:\Program Files\Intel\Media SDK\libmfxhw32.dll)
Media SDK version       1.11
Memory type             System
Async depth             4

Input  format           YUV420

Output video            AVC
Source picture:
  Resolution            1920x1088
  Crop X,Y,W,H          0,0,1920,1080
Destination picture:
  Resolution            1920x1088
  PAR                   0:0
  Crop X,Y,W,H          0,0,1920,1080
Frame rate              59.999
Bitrate control         CBR
  bitrate               4717
GOP structure:
  GOP length            60
  I-/P-frame distance   4
  IDR-frame interval    0
  GOP type              Opened
Num of slices           4
Target usage            4 (balanced)

Processing started
Frame number: 690
ERROR: Cannot get frame 691 from avi-file

ERROR: undefined behavior (-16),        src\pipeline_encode.cpp (1361)


ERROR: the previous asynchrous operation is in execution (1),   src\main_frim_encode.cpp (121)
Simple math tells use that 691 (x2 ?) frames of 1920x1080 uncompressed raw video format + some minimal overhead is over the limit of 2GB.

A last question : do you know a similar Intel HW based encoder/decoder called QSVEncC by Rigaya?
If interested, it's open source (all sources are available) and works also very well :
see http://rigaya34589.blog135.fc2.com/b...tegory-10.html for info, download binaries and sources.

Direct download : https://onedrive.live.com/?cid=6bdd4...75AC8933C6!482

Has similar features as yours, and it works without any other tools (no FFDShow) + Avisynth/Vapoursynth/yuv4mpeg/AVI demuxer build in, but has no avisynth Source filter.
As far as I can see in the sources (Cpp + highly optimised SIMD assembler SSE/AVX/FMA instructions), it's well written, but unfortunately
I don't understand the comments as these are in has native far Eastern language (looks like chinese(?) like stuff for me ;-))

Last edited by Pat357; 3rd March 2015 at 00:08.
Pat357 is offline   Reply With Quote
Old 4th March 2015, 15:08   #704  |  Link
videofan3d
Registered User
 
Join Date: Sep 2013
Location: Czech Republic
Posts: 321
Quote:
Originally Posted by Pat357 View Post
I'm still looking for a solution to use FRIMencoder from STDin using a pipe from AVS2YUV (Avisynth) or VSPIPE (Vapoursynth).
...
Wow! - a lot of questions

1. avs2yuv (or vspipe)
I downloaded avs2yuv and tried it and faced the same issue.
Format YU12 (assuming it is specified as output format in underlying .avs script) is correct, you can test it on some small file step-by-step:

avs2yuv -raw input.avs -o test.yv12
FRIMEncode -i - -o::h264 -w 1920 -h 1080 -f 23.976 -cbr 24000 < test.yv12

and you will get it properly encoded.

But when using direct stdio-pipe connection, it really fails.
Interestingly, error message "Output error: wrote only %d of %d bytes" is coming from avs2yuv (!), not from FRIMEncode.
avs2yuv somehow cannot write to stdout buffer.
At this moment I have no clue why.

2. yuv4mpeg-video
At this moment I don't plan to deal with other formats.
Intel Media supports only 8-bit 4:2:0, and also all common sources (DVD, BluRay) are encoded in this way.
I don't want to write format nor colorspace convertors - that's why we all use Avisynth (and it does it pretty well).

3. 2 GB limit
This is probably limit of the VFW (Video for Windows) engine, which is old, coming from Windows 3.11 I guess...
Try to wrap the .avi into simple .avs script

AVISource("source.avi")
ConvertToYV12()

- maybe this will help.

4. QSVEncC by Rigaya
No, I don't know this SW.

Last edited by videofan3d; 4th March 2015 at 15:24.
videofan3d is offline   Reply With Quote
Old 4th March 2015, 15:56   #705  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
Quote:
Originally Posted by videofan3d View Post
FRIM version 1.24 released.

Compiled with Intel Media SDK - INDE 2015 Update 1

Few new features (=parameters) added:
-lahrd bitRate depth ... new encoding mode LA HRD-compliant
-dar w:h ... set output display aspect ratio, e.g. 4:3, 16:9 (FRIM Encode only)
-gopfile filename ... GOP-structure file (=requested I-frames), e.g.: (FRIM Encode only)

Please read FRIM_release_notes.txt for more details.

(Kindly asking audience of this forum for further testing ... )
As you can see here, it seems that all MVC decoding problems are fixed now! Thanks again for the new version!
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV
r0lZ is offline   Reply With Quote
Old 4th March 2015, 18:35   #706  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 452
Quote:
Originally Posted by videofan3d View Post
Wow! - a lot of questions

1. avs2yuv (or vspipe)
I downloaded avs2yuv and tried it and faced the same issue.
Format YU12 (assuming it is specified as output format in underlying .avs script) is correct, you can test it on some small file step-by-step:

avs2yuv -raw input.avs -o test.yv12
FRIMEncode -i - -o::h264 -w 1920 -h 1080 -f 23.976 -cbr 24000 < test.yv12

and you will get it properly encoded.

But when using direct stdio-pipe connection, it really fails.
Interestingly, error message "Output error: wrote only %d of %d bytes" is coming from avs2yuv (!), not from FRIMEncode.
avs2yuv somehow cannot write to stdout buffer.
At this moment I have no clue why.
Thanks for your reply.
I suspect that a work around might be in the way FRIMencoder reads from pipes.
It is not something "inherent" to Intel Media Encoder, because the other Intel HW based encoder I mentioned (QSVencc) does succesfully read and can encode the output from AVS2YUV via the same method.
Maybe if you would take a quick look in the QSVenc sources, this would bring some idea's how to handle this.
(all sources are inluded with the program)
Quote:
Originally Posted by videofan3d View Post
2. yuv4mpeg-video
At this moment I don't plan to deal with other formats.
Intel Media supports only 8-bit 4:2:0, and also all common sources (DVD, BluRay) are encoded in this way.
I don't want to write format nor colorspace convertors - that's why we all use Avisynth (and it does it pretty well).
You're very right about Avisynth : FRIM & Avisynth work very well togetter.
But what about the the newer and more powerfull VapourSynth ?
In my opinion, Vapoursynth has already the potential to become the successor from Avisynth, because :
1. It been designed to run in both 32-bit and 64-bit, not like the 64bit-hack in avisynth. I mean a real 64 bit engine with real 64 bit plugins.
2. It has internal multithreading, not like the Avisynth MT-hack.
3. It has a very active development and the list of plugins & scripts is growing every day.

The scripts are python based and to actually output or access the processed video, there is a incuded tool called VSPIPE.EXE
I would like to use your FRIMencoder with VapourSynth, but to be able to do that, it must :
1. to be able to read from STDIN via a pipe OR
2. the read from a "virtual AVI" (now a problem due the 2GB limit)

Tools like X264 / FFMpeg, Virtual dub, AVIsynth have no problems reading/encoding much larger than 2GB AVI's. (I 've used it already with over 2TB "virtual" AVI's!!)
Further both Avisnth and Virtualdub are also based on VFW, but these use the OpenDML handler to open AVI's larger than 2GB.
Do you use this OpenDML handler ? If not, would you please consider to implement it ?


Do you see any plans to make the FRIMencoder to work with Vapoursynth ?

Last edited by Pat357; 5th March 2015 at 02:43.
Pat357 is offline   Reply With Quote
Old 4th March 2015, 23:23   #707  |  Link
videofan3d
Registered User
 
Join Date: Sep 2013
Location: Czech Republic
Posts: 321
Quote:
Originally Posted by Pat357 View Post
Thanks for your reply.
I suspect that a work around might be in the way FRIMencoder reads from pipes.

But what about the the newer and more powerfull VapourSynth ?
Do you see any plans to make the FRIMencoder to work with Vapoursynth ?
ad 1. I will check what's wrong, just be a bit patient

ad 2. I don't know Vapoursynth, I didn't have a reason to use it so far. Nevertheless, here is a report that it can be used with FRIMEncode. You can check it and report.

ad 3. 2 GB limit - as pointed above, you can wrap the big (unlimited) .avi file by simple .avs script

AVISource("source.avi")
ConvertToYV12()

Avisynth will do all necessary file manipulation for you and input will be processed by FRIMEncode without problems
(I just tested in on 6 GB uncompressed AVI)

Anyway, I don't expect that somebody will create such huge uncompressed files. I assume mostly avisynth preprocessing.
Btw. Originally I used in the same way also DebugMode Frameserver for feeding FRIMEncode from Adobe Premiere CS3.
This frameserver creates virtual .avi file (a stub), which I wrapped by simple .avs and then fed into FRIMEncode.

Last edited by videofan3d; 5th March 2015 at 11:54.
videofan3d is offline   Reply With Quote
Old 5th March 2015, 18:41   #708  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 452
Quote:
Originally Posted by videofan3d View Post
ad 1. I will check what's wrong, just be a bit patient
My applogies for this, I don't want youto feel pushed by me.
Quote:
Originally Posted by videofan3d View Post
ad 2. I don't know Vapoursynth, I didn't have a reason to use it so far. Nevertheless, here is a report that it can be used with FRIMEncode. You can check it and report.
I just did a quick check and ... IT WORKS ! Unbelieveble !
Code:
>FRIMEncode -avi -i "Nedi_rpow2.vpy" -o::h264 "Nedi_rpow2.vpy_direct.h264" -u 1 -icq 20

FRIM Encoder version 1.24 (build: Feb 27 2015)
 - based on Intel(R) Media SDK

Media SDK impl          HARDWARE (2) - D3D9 (C:\Program Files\Intel\Media SDK\libmfxhw32.dll)
Media SDK version       1.11
Memory type             System
Async depth             4

Input  format           YUV420

Output video            AVC
Source picture:
  Resolution            2560x1440
  Crop X,Y,W,H          0,0,2560,1440
Destination picture:
  Resolution            2560x1440
  PAR                   0:0
  Crop X,Y,W,H          0,0,2560,1440
Frame rate              29.970
Bitrate control         ICQ
  quality               20
GOP structure:
  GOP length            30
  I-/P-frame distance   4
  IDR-frame interval    0
  GOP type              Opened
Num of slices           4
Target usage            1 (quality)

Processing started
Frame number: 2000
Processing finished in 49.67 seconds
Now I feel stupid because I've never tried this myself
The clue is just using the .VPY as an .AVI and let the AVI parser do it job !
Thank you very much for providing me this info and also for your great encoder/decoder/Source !
I really do appreciate this !
Quote:
Originally Posted by videofan3d View Post
ad 3. 2 GB limit - as pointed above, you can wrap the big (unlimited) .avi file by simple .avs script

AVISource("source.avi")
ConvertToYV12()

Avisynth will do all necessary file manipulation for you and input will be processed by FRIMEncode without problems
(I just tested in on 6 GB uncompressed AVI)

Anyway, I don't expect that somebody will create such huge uncompressed files. I assume mostly avisynth preprocessing.
These large AVI's were not real AVI-files.
They were created by "Pismo File Mount Audit Package" : it created virtual AVIs using the proper plugins. AVIsynth has the ASFS plugin and also Vapoursynth has the VSFS plugin.
If you need to serve a script to an app. (encoder,...) it's kind of the last resort to serve the scripts if nothing else works.
Also these AVI don't take any real space on your system.

It can become handy for some aps that won't take any other tricks (like MakeAVIS, Debug File Server, AVSProxy,...).
Quote:
Originally Posted by videofan3d View Post
Btw. Originally I used in the same way also DebugMode Frameserver for feeding FRIMEncode from Adobe Premiere CS3.
This frame-server creates virtual .avi file (a stub), which I wrapped by simple .avs and then fed into FRIMEncode.
I just installed it to have a look : it seems to be able to use it, you need a proper plugin for the app you want to use it with...no ?
I don;t have any of the apps installed for the included plugins, so I guess I can only use it as a "network client" for getting data from a network port.. or am I missing something ?

Last edited by Pat357; 5th March 2015 at 23:45.
Pat357 is offline   Reply With Quote
Old 6th March 2015, 10:16   #709  |  Link
videofan3d
Registered User
 
Join Date: Sep 2013
Location: Czech Republic
Posts: 321
Quote:
Originally Posted by Pat357 View Post
I just installed it to have a look : it seems to be able to use it, you need a proper plugin for the app you want to use it with...no ?
I don;t have any of the apps installed for the included plugins, so I guess I can only use it as a "network client" for getting data from a network port.. or am I missing something ?
Not sure I understand your question about Debugmode Frameserver.

Debugmode Frameserver is a plugin to several NLE system for export to virtual .avi.
It works also with Adobe Premiere CS3 and higher (i.e. 32-bit version for CS3, 64-bit version for CS4 and higher).
I use it for export from Premiere and encoding either using x264, HCEnc, or FRIMEncode.
In all cases I wrap this virtual .avi into .avs (the simple trick I mentioned above) – and all works perfectly.

Later on I developed FRIMExport.prm, which is direct plugin to Premiere CS6 for export/encoding using FRIM technology - to be used mainly for Bluray 3D export.
(Two reasons:
1. Premiere CS3 has bug and is not able to process more than Full HD (it crashes), while for 3D we need 2x Full HD
2. I wanted to simplify the export chain, and reduce task switching overheads = faster encoding)

This plugin is not perfect, the process is slow and bit complicated, (Adobe Premiere has poor, practically zero, support for 3D stereoscopic editing), but once you get used to it, it leads to expected result.
videofan3d is offline   Reply With Quote
Old 6th March 2015, 20:56   #710  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 452
While comparing FRIMencoder (v1.24) with QSVenc (v1.27 dd Nov 2014), I noticed that the one has some options for H264 encoding that the other has not, and the other way around.

For encoding to H264, it seems these are not yet implemented or just not shown :

1. Trelis : used to set to perform trelis on just I frames and also on P en B frames. Also looking for b-pyramid mode and an intra-refresh option (enables adaptive I frame insert)

2. Bframes : the number of sequential B-frames.

3. Video processing like de-noise, image detail enhancement, image stabilization,... (all done using Intel HW)

4. Setting encoded video properties like : fullrange or not, video-format (undef, ntsc, component, pal,..), the color-matrix, color primaries, used transfer curve.
These are important for the decoder, but most for rendering.
The renderer needs this info to ensure correct color rendering.
If not available, the only thing the renderer can do is to guess these based on the resolution


Further, using d3d9/d3d11 surface for FRIMenoder is slowing down the encoding to less than 5-10 fps on my system (=Haswell CPU i7-4770 @ 3.7 GHz) ... ?
Is this a normal /to expect behavior ?
Shouldn't it be an advantage to use d3d surfaces ? (for de-interlacing, video processing, ..)

Maybe something to look into for the next releases ?

There are a few more minor things that don't bother me.

Just for completeness and because I thought you probably didn't have time/motivation to download QSVenc, I've included the complete option list from QSVenc.

QSVenc --help gives :
Code:
QSVEncC (x86) 1.27 by rigaya, build Nov 20 2014 21:06:30
based on Intel(R) Media SDK Encoding Sample 5,0,461,92695
  avi reader: enabled
  avs reader: enabled
  vpy reader: enabled

Usage: qsvencc [Options] -i <filename> -o <filename>

input can be avi, avs, vpy, raw YUV or YUV4MPEG2(y4m) format.
when raw(default), fps, input-res are also necessary.

output format will be raw H.264/AVC ES.
when output filename is set to "-", H.264/AVC ES output is thrown to stdout.

Example:
  QSVEncC -i "<avsfilename>" -o "<outfilename>"
  avs2pipemod -y4mp "<avsfile>" | QSVEncC --y4m -i - -o "<outfilename>"

Example for Benchmark:
  QSVEncC -i "<avsfilename>" --benchmark "<benchmark_result.txt>"

Options: 
-h,-? --help                    show help
-v,--version                    show version info

-i,--input-file <filename>      set input file name
-o,--output-file <filename>     set ouput file name

 Input formats (will be estimated from extension if not set.)
   --raw                        set input as raw format
   --y4m                        set input as y4m format
   --avi                        set input as avi format
   --avs                        set input as avs format
   --vpy                        set input as vpy format
   --vpy-mt                     set input as vpy format in multi-thread

   --nv12                       set raw input as NV12 color format,
                                if not specified YV12 is expected
   --tff                        set as interlaced, top field first
   --bff                        set as interlaced, bottom field first
-f,--fps <int>/<int> or <float> video frame rate (frames per second)

   --input-res <int>x<int>      input resolution
   --output-res <int>x<int>     output resolution
                                if different from input, uses vpp resizing
                                if not set, output resolution will be same
                                as input (no resize will be done).
   --crop <int>,<int>,<int>,<int>
                                set crop pixels of left, up, right, bottom.

   --slices <int>               number of slices, default 0 (auto)

   --sw                         use software encoding, instead of QSV (hw)
   --check-hw                   check if QuickSyncVideo is available
   --check-lib                  check lib API version installed
   --check-features             check encode features
   --check-environment          check environment info
   --disable-d3d                disable using d3d surfaces
   --d3d                        use d3d9/d3d11 surfaces
   --d3d9                       use d3d9 surfaces
   --d3d11                      use d3d11 surfaces

 EncMode default: --cqp
   --cqp <int> or               encode in Constant QP, default 24:26:27
         <int>:<int>:<int>      set qp value for i:p:b frame
   --vqp <int> or               encode in Variable QP, default 24:26:27
         <int>:<int>:<int>      set qp value for i:p:b frame
   --la <int>                   set bitrate in Lookahead mode (kbps)
   --la-hrd <int>               set bitrate in HRD-Lookahead mode (kbps)
   --icq <int>                  encode in Intelligent Const. Qualtiy mode
                                  default value: 23
   --la-icq <int>               encode in ICQ mode with Lookahead
                                  default value: 23
   --cbr <int>                  set bitrate in CBR mode (kbps)
   --vbr <int>                  set bitrate in VBR mode (kbps)
   --avbr <int>                 set bitrate in AVBR mode (kbps)
                                 AVBR mode is only supported with API v1.3
   --avbr-unitsize <int>        avbr calculation period in x100 frames
                                 default 90 (= unit size 9000 frames)
   --qvbr <int>                 set bitrate in Quality VBR mode.
   --qvbr-q <int>  or           set quality used in qvbr mode. default: 23
   --qvbr-quality <int>          QVBR mode is only supported with API v1.11
   --vcm <int>                  set bitrate in VCM mode (kbps)

   --la-depth <int>             set Lookahead Depth, 10-100
   --la-window-size <int>       enables Lookahead Windowed Rate Control mode,
                                  and set the window size in frames.
   --max-bitrate <int>          set max bitrate(kbps)
-u,--quality <string>           encode quality
                                  - best, higher, high, balanced(default)
                                    fast, faster, fastest

   --ref <int>                  reference frames for sw encoding
                                  default 0 (auto)
-b,--bframes <int>              number of sequential b frames
                                  default 3 (auto)

   --gop-len <int>              (max) gop length, default 0 (auto)
                                  when auto, fps x 10 will be set.
   --(no-)open-gop              enables open gop (default:off)
   --strict-gop                 force gop structure
   --(no-)scenechange           enables scene change detection

   --level <string>             set codec level, default auto
   --profile <string>           set codec profile, default auto
   --sar <int>:<int>            set Sample Aspect Ratio
   --bluray                     for H.264 bluray encoding

   --vpp-denoise <int>          use vpp denoise, set strength
   --vpp-detail-enhance <int>   use vpp detail enahancer, set strength
   --vpp-deinterlace <string>   set vpp deinterlace mode
                                enabled only when set --tff or --bff
                                 - none    disable deinterlace
                                 - normal  normal deinterlace
                                 - it      inverse telecine
                                 - bob     double framerate
   --vpp-image-stab <string>    set image stabilizer mode
                                 - none, upscale, box

   --input-buf <int>            buffer size for input (1-16)
                                 default   hw: 3,  sw: 1
   --log <string>               output log to file.

 settings below are only supported with API v1.3
   --fullrange                  set stream as fullrange yuv
   --videoformat <string>         undef, ntsc, component, pal, secam, mac
                                   default: undef
   --colormatrix <string>         undef, auto, bt709, smpte170m, bt470bg
                                  smpte240m, YCgCo, fcc, GBR
                                   default: undef
   --colorprim <string>           undef, auto, bt709, smpte170m, bt470m
                                  bt470bg, smpte240m, film
                                   default: undef
   --transfer <string>            undef, auto, bt709, smpte170m, bt470m
                                  bt470bg, smpte240m, linear, log100, log316
                                   default: undef

 settings below are only supported with API v1.6
   --(no-)mbbrc                 enables per macro block rate control
                                 default: off
   --(no-)extbrc                enables extended rate control
                                 default: off

 settings below are only supported with API v1.7
   --trellis <string>           set trellis mode used in encoding
                                 - auto(default), none, i, ip, all

 settings below are only supported with API v1.8
   --(no-)i-adapt               enables adaptive I frame insert (default:off)
   --(no-)b-adapt               enables adaptive B frame insert (default:off)
   --(no-)b-pyramid             enables B-frame pyramid reference (default:off)
   --lookahead-ds <string>      set lookahead quality.
                                 - auto(default), fast, normal, slow

 settings below are only supported with API v1.9
   --(no-)intra-refresh         enables adaptive I frame insert
   --no-deblock                 disables H.264 deblock feature
   --qpmin <int> or             set min QP, default 0 (= unset)
           <int>:<int>:<int>
   --qpmax <int> or             set max QP, default 0 (= unset)
           <int>:<int>:<int>

 Settings below are available only for software ecoding.
   --cavlc                      use cavlc instead of cabac
   --rdo                        use rate distortion optmization
   --inter-pred <int>           set minimum block size used for
   --intra-pred <int>           inter/intra prediction
                                  0: auto(default)   1: 16x16
                                  2: 8x8             3: 4x4
   --mv-search <int>            set window size for mv search
                                  default: 0 (auto)
   --mv-precision <int>         set precision of mv search
                                  0: auto(default)   1: full-pell
                                  2: half-pell       3: quater-pell

   --benchmark <string>         run in benchmark mode
                                 and write result in txt file
   --(no-)timer-period-tuning   enable(disable) timer period tuning
                                  default: enable

Last edited by Pat357; 7th March 2015 at 12:48.
Pat357 is offline   Reply With Quote
Old 28th March 2015, 21:18   #711  |  Link
videofan3d
Registered User
 
Join Date: Sep 2013
Location: Czech Republic
Posts: 321
FRIM version 1.25

FRIM version 1.25 released.

Changes in FRIMEncode:
- fixed reading from stdin
- few new parameters added:

-f 24000/1001 - frame rate as rational number, or
-f 23.976 - frame rate as real number
-Trellis IPB|off
-Bpyramid on|off
-RDO on|off

-VPPbrightness factor - in range [-100.0,100.0]
-VPPcontrast factor - in range [0.00,10.00]
-VPPhue factor - in range [-180.0,180.0]
-VPPsaturation factor - in range [0.00,10.00]
-VPPdenoise factor - denoising, in range [0,100]
-VPPdetail factor - detail/edge enhancement, in range [0,100]
-VPPstabilize U|B - image stabilization, U=upscale, B=boxing
-VPPdeinterlace - activate deinterlacing

(setting parameters of output bitstream)
-videoformat code
-videofullrange
-colormatrix code
-colorprim code
-colortransfer code


Please read FRIM_release_notes.txt for more details.
videofan3d is offline   Reply With Quote
Old 8th April 2015, 20:53   #712  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 452
Quote:
Originally Posted by videofan3d View Post
FRIM version 1.25 released.
.
Thanks a lot for this new release !!

I wondered how you solved the reading from Stdin problem ?
As far as I could see, the basic problem was that FRIMencode already closed the pipe before any frames where produced by Avisynth/Vapoursynth.

I think this is a great release and it should cover everyone's needs.

A small question about VPPdeinterlace : what options does it have ? Can it output double frame rate (like bobbing) ?
I didn't see it in the docs.

Last edited by Pat357; 8th April 2015 at 20:59. Reason: VPPdeinterlace question
Pat357 is offline   Reply With Quote
Old 13th April 2015, 16:05   #713  |  Link
videofan3d
Registered User
 
Join Date: Sep 2013
Location: Czech Republic
Posts: 321
Re:
1. reading from stdin: there was a bug in the related routine :-) - fixed.

2. VPPdeinterlace: no options, it calls some basic routine in the Intel Media - probably some kind of field-blending. I didn't explore it too much deeply.
(FRIM doesn't change the frame rate, thus all methods which use double frame rate cannot be used).

I personally am not a friend of de-interlacing during encoding.
De-interlacing should be used always on decoding side and only when displaying video (on progressive screen),
while whole processing should keep the format (progressive vs. interlaced).
And definitely, interlaced video as legacy from analog television should be avoided in all new recordings.

Last edited by videofan3d; 14th April 2015 at 05:33.
videofan3d is offline   Reply With Quote
Old 4th May 2015, 20:11   #714  |  Link
l33tmeatwad
Registered User
 
l33tmeatwad's Avatar
 
Join Date: Jun 2007
Posts: 414
Any chance of getting a 64-bit AviSynth plugin?
l33tmeatwad is offline   Reply With Quote
Old 5th May 2015, 17:57   #715  |  Link
videofan3d
Registered User
 
Join Date: Sep 2013
Location: Czech Republic
Posts: 321
Quote:
Originally Posted by l33tmeatwad View Post
Any chance of getting a 64-bit AviSynth plugin?
Is there any stable, "official" Avisynth 64-bity build?
Can it co-exist with 32-bit Avisynth on the same Windows machine?

Please direct me to its sources, web-pages, I can then check it.
videofan3d is offline   Reply With Quote
Old 5th May 2015, 20:37   #716  |  Link
l33tmeatwad
Registered User
 
l33tmeatwad's Avatar
 
Join Date: Jun 2007
Posts: 414
Quote:
Originally Posted by videofan3d View Post
Is there any stable, "official" Avisynth 64-bity build?
Can it co-exist with 32-bit Avisynth on the same Windows machine?

Please direct me to its sources, web-pages, I can then check it.
Not an "official" version, but the 64-bit version of AviSynth+ (fork off of 2.6 Alpha 5) is fairly stable and getting worked on regularly. It can also co-exist on the same machine with the 32-bit version. Here's the doom9 thread for more information.
l33tmeatwad is offline   Reply With Quote
Old 7th May 2015, 20:30   #717  |  Link
videofan3d
Registered User
 
Join Date: Sep 2013
Location: Czech Republic
Posts: 321
FRIMSource64 - for AviSynth+

Hi,

please find here beta version of FRIMSource64.dll for AviSynth+ (64-bit).

It is the same source code as 32-bit version FRIMSource.dll version 1.25 hence it is identical from functionality perspective.

Please test it.
Once confirmed and approved, I will add it to regular distribution package.
videofan3d is offline   Reply With Quote
Old 9th May 2015, 05:01   #718  |  Link
l33tmeatwad
Registered User
 
l33tmeatwad's Avatar
 
Join Date: Jun 2007
Posts: 414
The 64-bit AviSynth plugin works.

My next question...how in the world does this premiere plugin work? This documentation explains nothing...
l33tmeatwad is offline   Reply With Quote
Old 9th May 2015, 16:33   #719  |  Link
videofan3d
Registered User
 
Join Date: Sep 2013
Location: Czech Republic
Posts: 321
Quote:
Originally Posted by l33tmeatwad View Post
The 64-bit AviSynth plugin works.

My next question...how in the world does this premiere plugin work? This documentation explains nothing...
Premiere plugin exports 3D-MVC encoded data (then to be muxed by tsMuxer into regular BD3D navigation structure).

Please download the synthetic sample project FRIM_Premiere_samples_1.23.zip, install plugins FRIMExport.prm and FRIMImport.frm into Premiere Pro 6(+) into its plugin directory (probably c:\Program Files\Adobe\Common\Plug-ins\CS6\MediaCore\) and follow the steps in FRIMPremiere_readme.pdf.

I use it for all video projects recorded using my 3D camcorder.
Remark: Keep on mind this plugin is suitable only for export of final project, not for its editing!
Editing need to be performed before as standard 2D project. Only at the end you have to "turn it" into 3D "top-above-below" and export using this plugin.

Last edited by videofan3d; 9th May 2015 at 16:35.
videofan3d is offline   Reply With Quote
Old 9th May 2015, 18:23   #720  |  Link
l33tmeatwad
Registered User
 
l33tmeatwad's Avatar
 
Join Date: Jun 2007
Posts: 414
Quote:
Originally Posted by videofan3d View Post
Premiere plugin exports 3D-MVC encoded data (then to be muxed by tsMuxer into regular BD3D navigation structure).

Please download the synthetic sample project FRIM_Premiere_samples_1.23.zip, install plugins FRIMExport.prm and FRIMImport.frm into Premiere Pro 6(+) into its plugin directory (probably c:\Program Files\Adobe\Common\Plug-ins\CS6\MediaCore\) and follow the steps in FRIMPremiere_readme.pdf.

I use it for all video projects recorded using my 3D camcorder.
Remark: Keep on mind this plugin is suitable only for export of final project, not for its editing!
Editing need to be performed before as standard 2D project. Only at the end you have to "turn it" into 3D "top-above-below" and export using this plugin.
Yeah, that part is get, what I don't really understand is:
Quote:
Library libmfxsw64.dll needs to be placed in any directory which is specified in PATH evironment variable.
The plugins show up, but I can't really do anything with them (I assume because I do not know where to place that DLL).
l33tmeatwad is offline   Reply With Quote
Reply

Tags
encoders, mvc

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 05:59.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.