View Full Version : Free H.264 MVC 3D Encoder
videofan3d
5th November 2013, 21:06
Hi,
new version of FRIM Encoder (1.10) is available - see the link on the first page of this thread.
New features:
FRIM Encoder 1.10 added options
- for GOP control (length, IP-distance, IDR-interval, opened/closed/strict)
- added options for bitrate control -cbr, -vbr (for Blu-ray/DVD compatibility setting)
- added option -cpbsize for cpb/vbv buffer size (for Blu-ray/DVD compatibility setting)
- added option -l numSlices (for Blu-ray compatibility setting)
- added option -maxdpb for size of Decoded Picture Buffer
- added options -profile, -level for proper marking of elementary stream
- added options for CAVLC and CABAC encoding
- added options -VuiNalHrd, -VuiVclHrd, -PicTimingSEI, -EndOfSequence, -EndOfStream for H.264 elementary stream NAL structure control
FRIM Decoder, FRIM Transcoder - no changes.
Cedvano
5th November 2013, 22:48
Great software.
I already use MVC encoding by Intel, but the problem is that he can only encode MVC combined files.
Can you modify FRIMTranscode (the multi transcode) for use with Blu-ray MVC in 2 files (AVC and MVC files)?
Sharc
5th November 2013, 23:44
Thanks videofan3d. MVC VBR with v1.10 is great; ISO finally created with tsMuxeR (3D with ssif).
Would be awesome if Intel would support 2 separate input files for base and dependent view in future.
P.S.
Still I could not make it work with the pipe. I get the same 3 errors as tymoxa.
Works only via large .yuv files here ....
videofan3d
6th November 2013, 01:25
Still I could not make it work with the pipe. I get the same 3 errors as tymoxa.
Could you please remind me, how do you connect it it via pipes?
The exact command?
I'll look at it during days....
tymoxa
6th November 2013, 01:35
Could you please remind me, how do you connect it it via pipes?
The exact command?
I'll look at it during days....
I have tried this command:
FRIMDecode.exe mvc -i MVCCombined.h264 -o \\.\pipe\test.yuv | FRIMEncode.exe mvc -i \\.\pipe\test_L.yuv -i \\.\pipe\test_R.yuv -viewoutput -o output_L.h264 -o output_R.h264 -w 1920 -h 1080 -f 23.976 -u 4 -cpbsize 3570 -vbr 30000 40000 -l 6 -profile high -level 4.1 -gop 24 4 0 O
frencher
6th November 2013, 01:40
Very good update 1.10 have better compatibility with nero 3D player ;)
There in the large files of Frim a problem with avisynth (Source = SBS 3840x1080).
After a few minutes or a few seconds the screen become black until the end of the film (probably stall) at the time the encoding speed become faster there.
Have you any solution?
How to pass command line for complete compatibility for Blu-ray 3D encoding ?
tymoxa
6th November 2013, 01:45
How to pass command line for complete compatibility for Blu-ray 3D encoding ?
For 1080@23.976 fps try this:
FRIMEncode.exe mvc -i input_L.yuv -i input_R.yuv -viewoutput -o output.avc -o output.mvc -w 1920 -h 1080 -f 23.976 -u 4 -cpbsize 3570 -vbr 30000 40000 -l 6 -profile high -level 4.1 -gop 24 4 0 O
Just remember that maximum bitrate for main+dependent+audio+subtitles is 64Mbps
colinhunt
6th November 2013, 01:51
I get same errors as tymoxa and Sharc when trying to use a pipe. Windows 7 Ultimate 64-bit, in case that matters any.
frencher
6th November 2013, 02:39
FRIMEncode.exe mvc -i input_L.yuv -i input_R.yuv -viewoutput -o output.avc -o output.mvc -w 1920 -h 1080 -f 23.976 -u 4 -cpbsize 3570 -vbr 30000 40000 -l 6 -profile high -level 4.1 -gop 24 4 0 O
Thank ;)
And CABAC ? :confused:
Sharc
6th November 2013, 08:09
Could you please remind me, how do you connect it it via pipes?
The exact command?
I'll look at it during days....
My command:
FRIMDecode mvc -i CombinedMVC.h264 -o \\.\pipe\TMP.yuv | FRIMEncode.exe mvc -i \\.\pipe\TMP_L.yuv -i \\.\pipe\TMP_R.yuv -viewoutput -o output_L.h264 -o output_R.h264 -w 1920 -h 1080 -dstw 1280 -dsth 720 -f 23.976 -vbr 10000 20000 -u 4
pause
The errors I get:
ERROR: Cannot open input file \\.\pipe\TMP_L.yuv
ERROR: File reader initialization failed.
ERROR: Cannot start encoding process.
I am on Windows 7 /64 bit.
All files are in the same folder. Does it have to be a special folder? Root directory?
Cedvano
6th November 2013, 08:50
I confirm this error on Win 7 / 64Bits.
tymoxa
6th November 2013, 09:59
And CABAC ? :confused:
CABAC is ON by default.
videofan3d
6th November 2013, 10:36
My command:
FRIMDecode mvc -i CombinedMVC.h264 -o \\.\pipe\TMP.yuv | FRIMEncode.exe mvc -i \\.\pipe\TMP_L.yuv -i \\.\pipe\TMP_R.yuv -viewoutput -o output_L.h264 -o output_R.h264 -w 1920 -h 1080 -dstw 1280 -dsth 720 -f 23.976 -vbr 10000 20000 -u 4
pause
The errors I get:
ERROR: Cannot open input file \\.\pipe\TMP_L.yuv
ERROR: File reader initialization failed.
ERROR: Cannot start encoding process.
I am on Windows 7 /64 bit.
All files are in the same folder. Does it have to be a special folder? Root directory?
There are two issues:
1. failure above is related to timing. Encoding process is trying to read from named-pipe which Decoding process didn't open yet
2. beside of this, there is bug when reading end of pipe.
I'll check it and fix it.
Sharc
6th November 2013, 15:00
There are two issues:
1. failure above is related to timing. Encoding process is trying to read from named-pipe which Decoding process didn't open yet
2. beside of this, there is bug when reading end of pipe.
I'll check it and fix it.
Thanks! Glad you traced the cause.
Sharc
7th November 2013, 10:01
Why dont use FRIMTranscode.exe with both output: output_L.h264 and output_R.h264
We can use FRIMtranscode.exe to produce a re-encoded CombinedMVC.h264:
FRIMTranscode.exe -i::mvc CombinedMVC.h264 -o::mvc TranscodedCombinedMVC.h264 -w 1920 -h 1080 -f 23.976 -l 4 -b 8000 -u 4
The transcoded .h264 can then be remuxed with the new tsMuxeR.
FRIMTranscode.exe so far seems not support -vbr or any of the other advanced options which are available with FRIMEncode.exe. However it avoids the huge *.yuv intermediate files and could be a workaround until the fix for named pipe becomes available.
videofan3d
7th November 2013, 10:30
FRIMTranscode.exe so far seems not support -vbr or any of the other advanced options which are available with FRIMEncode.exe. However it avoids the huge *.yuv intermediate files and could be a workaround until the fix for named pipe becomes available.
Pipe-fix will be available soon, likely on Friday night, so you can test it over weekend.
FRIOM Transcoder modification (cbr, vbr, gop, ...) is on roadmap.
Sharc
7th November 2013, 10:35
Pipe-fix will be available soon, likely on Friday night, so you can test it over weekend.
FRIOM Transcoder modification (cbr, vbr, gop, ...) is on roadmap.
Wow! Good News. Just take your time .... no hurry.
colinhunt
7th November 2013, 11:16
Pipe-fix will be available soon, likely on Friday night, so you can test it over weekend.
FRIOM Transcoder modification (cbr, vbr, gop, ...) is on roadmap.
Fantastic! Thank you very much for all your hard work.
HWK
7th November 2013, 19:23
videofan3d can you add support for frame serving through directshowmvcsource plugin, currently when I open avs file in encoder I get message can't determine number of frames. I tired SBS as well and same thing is happening. However If I open file in virtual dub it correctly display how many frames video has and frame rate as well.
videofan3d
7th November 2013, 20:13
videofan3d can you add support for frame serving through directshowmvcsource plugin, currently when I open avs file in encoder I get message can't determine number of frames. I tired SBS as well and same thing is happening. However If I open file in virtual dub it correctly display how many frames video has and frame rate as well.
I don't understand.
Please describe your needs what do you want to achieve.
Avisynth is mighty tool (and well proven), I use for interractions between all my videoapplications without difficulties. Whenever I had a problem - it was always caused by mistake in my avs-script :).
videofan3d
7th November 2013, 20:38
Hi,
there is new version FRIM 1.11
FRIM Encoder 1.11
- fixed bug in handling named pipes (.yuv)
FRIM Decoder 1.11
- separate main and dependent views on input are supported
FRIMDecode mvc -i input_L.h264 -i input_R.h264 -o output.yuv
frencher
7th November 2013, 21:04
Yeah i test your update NOW !!!
It's possible to compile all *.exe to x64 for increase speed please.
Thank ;)
videofan3d
7th November 2013, 21:11
Yeah i test your update NOW ;)
It's possible to compile all *.exe to x64 for increase speed please.
Unfortunately, MSVC x64-compiler is not free... :(
frencher
7th November 2013, 21:40
Unfortunately, MSVC x64-compiler is not free... :(
There seems to have the better with pipe
By FrimEncoder against crashes during encoding with avisynth or MVC track is not decoded to give a black image instead of the right view (MVC).
A sync problem or Memory buffer
videofan3d
7th November 2013, 21:43
There seems to have the better with pipe
By FrimEncoder against crashes during encoding with avisynth or MVC track is not decoded to give a black image instead of the right view (MVC).
A sync problem or Memory buffer
How do you run it? Please provide me with details...
colinhunt
7th November 2013, 22:10
Unfortunately, MSVC x64-compiler is not free... :(
How much does it cost? Perhaps we could pass a hat around...
frencher
7th November 2013, 22:11
Avisynth Script:
LoadPlugin ("F:\MVC Player\MVCtoAVI.exe\DirectShowMVCSource.dll")
# Start AVS for CombinedMVC
File = "G:\Video.mts"
Left = DirectShowMVCSource(File,decodeleft=TRUE)
Right = DirectShowMVCSource(File)
Video = StackHorizontal(Left,Right) (3840x1080 @ 23.976 fps)
# End AVS for CombinedMVC
Video = Video.ConvertToYV12()
Return Video
Batch:
"F:\MVC Player\MVCtoAVI.exe\Tools\Frim MVC Decoder Encoder\FRIMEncode.exe" mvc -i "F:\MVC Player\MVCtoAVI.exe\Preview.avs" -avi -sbs 2 -viewoutput -o H:\L.h264 -o H:\R.h264 -b 60000 -u 4
colinhunt
7th November 2013, 22:13
FRIM Decoder 1.11
- separate main and dependent views on input are supported
FRIMDecode mvc -i input_L.h264 -i input_R.h264 -o output.yuv
Does this mean I can feed it demuxed h264 files directly from a 3DBD?
HWK
7th November 2013, 22:17
Avisynth Script:
LoadPlugin ("F:\MVC Player\MVCtoAVI.exe\DirectShowMVCSource.dll")
# Start AVS for CombinedMVC
File = "G:\Video.mts"
Left = DirectShowMVCSource(File,decodeleft=TRUE)
Right = DirectShowMVCSource(File)
Video = StackHorizontal(Left,Right) (3840x1080 @ 23.976 fps)
# End AVS for CombinedMVC
Video = Video.ConvertToYV12()
Return Video
Batch:
"F:\MVC Player\MVCtoAVI.exe\Tools\Frim MVC Decoder Encoder\FRIMEncode.exe" mvc -i "F:\MVC Player\MVCtoAVI.exe\Preview.avs" -avi -sbs 2 -viewoutput -o H:\L.h264 -o H:\R.h264 -b 60000 -u 4
Does it work for you? I tired with Directshowmvcplugin but no go for me and then I decied to send whole package to author for testing. Except magic path is stereoplayer.exe instead mvc toavi.exe
HWK
7th November 2013, 22:17
Does this mean I can feed it demuxed h264 files directly from a 3DBD?
I would think so, give it a try and let us know how it goes for you.
frencher
7th November 2013, 22:23
Does it work for you? I tired with Directshowmvcplugin but no go for me and then I decied to send whole package to author for testing. Except magic path is stereoplayer.exe instead mvc toavi.exe
Look my tutorial from my signature, i have updated my tutorial for support yuv from ffdshow (up of 1920x1080) ;)
If I understand :D
frencher
7th November 2013, 22:25
I would think so, give it a try and let us know how it goes for you.
F:\MVC Player\MVCtoAVI.exe>"F:\MVC Player\MVCtoAVI.exe\Tools\Frim MVC Decoder Encoder\FRIMEncode.exe" mvc -i "F:\MVC Player\MVCtoAVI.exe\Preview.avs" -avi -sbs 2 -viewoutput -o H:\L.h264 -o H:\R.h264 -b 60000 -u 4
FRIM Encoder version 1.11 (build: Nov 7 2013)
- based on Intel(R) Media SDK (version: 4.0.760.60435)
Input format YUV420
Output video AVC
MFX dll: F:\MVC Player\MVCtoAVI.exe\Tools\Frim MVC Decoder Encoder\libmfxsw32.dll
Source picture:
Resolution 1920x1088
Crop X,Y,W,H 0,0,1920,1080
Destination picture:
Resolution 1920x1088
Crop X,Y,W,H 0,0,1920,1080
Frame rate 23.976
Bitrate control CBR
bitrate 60000
GOP structure:
GOP length 24
I-/P-frame distance 4
IDR-frame interval 1
GOP type Opened
Num of slices 6
Target usage 4 (balanced)
Memory type system
Media SDK impl sw
Media SDK version 1.7
Processing started
Frame number: 37969
frencher
7th November 2013, 22:28
Does this mean I can feed it demuxed h264 files directly from a 3DBD?
Yes directly from iso 3DBD without demuxing (With Avisynth by DirectShowMVCSource in next update of MVC Player Free) ;)
videofan3d
7th November 2013, 22:53
Does this mean I can feed it demuxed h264 files directly from a 3DBD?
Yes -
demux main and dependent view (e.g. using eac3to -demux xxx.ssif) please try it...
frencher
7th November 2013, 23:02
:( new crash with avisynth script... (Ten recodage with x264 x86 and no crash, no crash with export to YUV)
http://i41.tinypic.com/2lt68fn.png
HWK
7th November 2013, 23:05
Hi,
FRIMDecode mvc -i input_L.h264 -i input_R.h264 -o output.yuv
I think it would be better if naming convention is like this
-i input_L.h264 > -i input_B.h264
-i input_R.h264 > -i input_D.h264
B: Base, D: Dependent
Since some movies have inverse in order how they store stream.
videofan3d
7th November 2013, 23:11
I think it would be better if naming convention is like this
-i input_L.h264 > -i input_B.h264
-i input_R.h264 > -i input_D.h264
B: Base, D: Dependent
Since some movies have inverse in order how they store stream.
Right - next release I'll update documentation to be more self-explanatory.
videofan3d
7th November 2013, 23:13
:( new crash with avisynth script... (Ten recodage with x264 x86 and no crash, no crash with export to YUV)
http://i41.tinypic.com/2lt68fn.png
- What is the length (in minutes) of the movie you are processing?
- Are you using avisynth script or elementary view .h264?
HWK
7th November 2013, 23:14
Look my tutorial from my signature, i have updated my tutorial for support yuv from ffdshow (up of 1920x1080) ;)
If I understand :D
Thank you, that make sense I will give it a try, however still it would be nice to feed full sbs to encoder with directshowmvcsourceplugin only and get encoding going.
HWK
7th November 2013, 23:15
- What is the length (in minutes) of the movie you are processing?
- Are you using avisynth script or elementary view .h264?
Avisynth, it is also in the header of the post.
frencher
7th November 2013, 23:16
I think it would be better if naming convention is like this
-i input_L.h264 > -i input_B.h264
-i input_R.h264 > -i input_D.h264
B: Base, D: Dependent
Since some movies have inverse in order how they store stream.
OK i change my CMD Line ;)
My tool for AVC/MVC order First view of SSIF.rar (http://ul.to/b3reswxz)
HWK
7th November 2013, 23:20
OK i change my CMD Line ;)
My tool for AVC/MVC order First view of SSIF.rar (http://ul.to/b3reswxz)
Post was geared towards videofan3d :p
frencher
7th November 2013, 23:22
- What is the length (in minutes) of the movie you are processing?
- Are you using avisynth script or elementary view .h264?
With Avisynth
133402 frames total 266804
tymoxa
7th November 2013, 23:22
videofan3d
Is it possible to add an option to decoder/transcoder (let's say it would be -d key) to have possibility of decoding/transcoding dependent view only?
HWK
7th November 2013, 23:26
videofan3d
Is it possible to add an option to decoder/transcoder (let's say it would be -d key) to have possibility of decoding/transcoding dependent view only?
It make sense for decoder, however for transcoding and encoding I can't think of reason to add it.
videofan3d
7th November 2013, 23:29
videofan3d
Is it possible to add an option to decoder/transcoder (let's say it would be -d key) to have possibility of decoding/transcoding dependent view only?
Do you mean to get only the R-eye?
Please note that from MVC principle: base view can be decoded to L-eye, but for decoding R-eye you need both: base view and dependent view together.
HWK
7th November 2013, 23:32
It make sense for decoder, however for transcoding and encoding I can't think of reason to add it.
Do you mean to get only the R-eye?
Please note that from MVC principle: base view can be decoded to L-eye, but for decoding R-eye you need both: base view and dependent view together.
I think, what op is referring to ability to decode data from dependent view in such way that it can be viewed without any dependence.
tymoxa
7th November 2013, 23:53
I think, what op is referring to ability to decode data from dependent view in such way that it can be viewed without any dependence.
Exactly.
I want do something like this:
FRIMDecode mvc -i l.h264 -i r.h264 -o \\.\pipe\out.yuv -d | x264 --qp 0 -o dependent.264 - --fps 23.976 --input-res 1920x1080
HWK
8th November 2013, 00:01
Exactly.
I want do something like this:
oh, I see what you are saying. Good news we already have decoder which can do it for you and yes you can use X.264 encoder with it.
Sharc
8th November 2013, 00:02
v1.11 named pipe still does not work here. Now I get the error:
Error: Unknown codec
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.