Can anyone tell me how to troubleshoot the following error? I am trying to encode to 1280x720p29.97 for Encore. Thanks.
EDIT: FWIW, the avs script loads fine in vdub and I am able to scrub through all the frames with out any problems. So it looks like the error is in x264?
EDIT2: I guess if worse comes to worse, I can just write out a lossless intermediate and encode that instead of frameserving from PPro.
AVS Script:
x264 cli cmdCode:AVISource("E:\signpost.avi", audio=false).AssumeFPS(30000,1001) ConvertToYV12(interlaced=false, matrix="rec709") Lanczos4Resize( 1280, 720 )
x264 console outputCode:E:\>x264 --bitrate 30000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --fake-interlaced --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o video.264 bluray.avs
Code:avs [info]: 1280x720p 1:1 @ 30000/1001 fps (cfr) x264 [info]: using SAR=1/1 x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX x264 [info]: profile Main, level 4.1 avs [error]: Softwire: caught an access violation at 0x02b9553b(code+75), attempting to read from 0x00000000 occurred while reading frame 40 x264 [info]: frame I:2 Avg QP:16.67 size:303716 x264 [info]: frame P:10 Avg QP:13.40 size:194936 x264 [info]: frame B:28 Avg QP:19.72 size: 47042 x264 [info]: consecutive B-frames: 5.0% 0.0% 15.0% 80.0% x264 [info]: mb I I16..4: 3.4% 0.0% 96.6% x264 [info]: mb P I16..4: 0.7% 0.0% 0.0% P16..4: 96.5% 0.0% 0.0% 0.0% 0.0% skip: 2.8% x264 [info]: mb B I16..4: 0.0% 0.0% 0.0% B16..8: 14.7% 0.0% 0.0% direct:52.0% skip:33.3% L0:31.2% L1:41.8% BI:27.1% x264 [info]: direct mvs spatial:85.7% temporal:14.3% x264 [info]: coded y,uvDC,uvAC intra: 98.2% 96.8% 91.5% inter: 60.5% 35.4% 20.9% x264 [info]: i16 v,h,dc,p: 13% 61% 19% 7% x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 39% 8% 5% 7% 5% 9% 5% 11% x264 [info]: i8c dc,h,v,p: 45% 38% 9% 8% x264 [info]: Weighted P-Frames: Y:0.0% UV:0.0% x264 [info]: kb/s:23220.49 avs [error]: Softwire: caught an access violation at 0x02b9553b(code+75), attempting to read from 0x00000000 occurred while reading frame 41
+ Reply to Thread
Results 1 to 11 of 11
-
Last edited by SameSelf; 21st Oct 2015 at 20:27.
-
Probably has something to do with the fact that 1280x720p + 29.97/30fps + fake interlace is not "Bluray-compat".
https://www.videohelp.com/hd#tech- My sister Ann's brother -
The error is pre x264, likely a dmfs error . It's not because of the encoding settings.
Also your commandline won't give you compliant bd encodes, but that's a separate issue. --fake interlaced is for 1920x1080p29.97 .
You need --pulldown double to "fake" duplicate frames, but encore doesn't support it, so you need to physically double the frames with changefps(60000,1001) to give you 1280x720p59.94 . You should use the 720p59.94 BD settings (1 sec GOP is --keyint 60)
https://sites.google.com/site/x264bluray/home/720p-encoding -
OK, the plot thickens. I wrote out a lossless Lagarith intermediate AVI from PPro, instead of frameserving via DMFS. The lossless intermediate is 1920x1280p29.97. The video plays fine in WMP and MPC. I loaded the following avs script into vdub:
Code:AVISource("E:\Lagarith.avi", audio=false).AssumeFPS(30000,1001) ConvertToYV12(interlaced=false, matrix="rec709") Lanczos4Resize( 1280, 720 )
However, when I try to run this new avs script through x264 using the same command as before I get what looks like the same error as before!!! Something about not being able to read frame 40 and 41. Full text:
Code:avs [info]: 1280x720p 1:1 @ 30000/1001 fps (cfr) x264 [info]: using SAR=1/1 x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX x264 [info]: profile Main, level 4.1 avs [error]: Softwire: caught an access violation at 0x02b1172b(code+83), attempting to read from 0x00000000 occurred while reading frame 40 avs [error]: Softwire: caught an access violation at 0x02b1172b(code+83), attempting to read from 0x00000000 occurred while reading frame 41 x264 [info]: frame I:2 Avg QP:16.67 size:303496 x264 [info]: frame P:10 Avg QP:13.24 size:198960 x264 [info]: frame B:28 Avg QP:19.60 size: 48997 x264 [info]: consecutive B-frames: 5.0% 0.0% 15.0% 80.0% x264 [info]: mb I I16..4: 3.2% 0.0% 96.8% x264 [info]: mb P I16..4: 0.7% 0.0% 0.0% P16..4: 96.5% 0.0% 0.0% 0.0% 0.0% skip: 2.8% x264 [info]: mb B I16..4: 0.0% 0.0% 0.0% B16..8: 14.7% 0.0% 0.0% direct:52.1% skip:33.2% L0:31.2% L1:41.5% BI:27.3% x264 [info]: direct mvs spatial:85.7% temporal:14.3% x264 [info]: coded y,uvDC,uvAC intra: 98.2% 97.0% 91.6% inter: 61.0% 35.7% 21.5% x264 [info]: i16 v,h,dc,p: 13% 63% 18% 6% x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 39% 8% 5% 7% 5% 9% 5% 11% x264 [info]: i8c dc,h,v,p: 45% 38% 9% 8% x264 [info]: Weighted P-Frames: Y:0.0% UV:0.0% x264 [info]: kb/s:23787.34 encoded 40 frames, 25.41 fps, 23787.34 kb/s
-
Thanks guys! I inserted the ChangeFPS(60000,1001) line and ran the 720p59.94 x264 command instead of the 720p29.97 version I was using earlier, and I set --keyint to 60 vs 30.
Fully encoded both frameserving and the Lagarith intermediate. However, all this testing made me realize that when doing a 2-pass encode it is much faster writing out a lossless intermediate. -
Maybe not related to your problem, but good to know: Frame server can work or be served once at a time, you cannot serve into two applications, like maybe even VirtualDub/or even player, not sure though (having it still running, perhaps in pause, but running) and encoder encoding.
While writing code in batch script, to encode avs script that loaded frame server's avi I had to check if that avi was not in use and possibly some designed delay.BAT had to be called :
( type nul >> "signpost.avi" ) 2>nul || ( call delay.BAT )
without this running different encodings for the same signpost.avi would fail
with this feature I can run signpost.avi with multiple BAT's at the same time, each encodes something else, and it is guaranteed that only one encoding is running at a time, because only one process is basically running at a time, the rest is on delay periodically checking ( 1min or so) if that signpost.avi is availableLast edited by _Al_; 21st Oct 2015 at 22:27.
-
That is some great advice, thanks so much. I wasn't trying to frameserve into two apps at once, so that wasn't my problem.
But, I was wondering about how to automate the encode step, if I ditch frameserving. I have no problem frameserving when I am encoding for Youtube because I always do 1-pass CBR. But, the x264 wiki for blu-ray compliant encodes seems to stress 2-pass. Frameserving is very slow though because I have a lot of AE layers (denoise, color grading, etc.). So it is much faster to write out a lossless intermediate once and then encode that twice than frameserve twice. But, the lossless takes a while, and I was wondering how to automatically kick off the x264 command using a batch file once the lossless intermediate is finished. Do you think something similar to the batch command above would do the trick?
Thanks. -
If your video is short, that you know would not exceed 25GB, or whatever volume for BD is, having calculated it with imaginary 30 Mbit there (buffers cut higher bitrates fo Blu-Ray settings), it gives something about 1hour 45min?, so you can encode CRF safely. That website uses two pass simply because you can encode to exact size, or it just common habit, you know from DVD encoding. Just a habit. Even on this forum folks would tell you that 2pass is better than CRF for some reason. If there is enough room, meaning video length is good and and buffers cut offs guarantee that you are fine why not to use 1pass CRF and heck zones as well. Using zones would basically mean that you force encoder go closer to those 30-40 Mbit limits when expecting, encoder might not be willing to do so (dark scenes, gradients) while still not be worried much about exceeding that BD volume limit.
you just replace --bitrate something to --CRF something, and using only one line of course.
I use same thing encoding DVD, if length is less than 1hour 10 minutes automatically 1pass Constant Quantization in HcEncoder is selected with max bitrate 8000 set, so in similar fashion this could be used fo BD.
About that lossless, you can even automate creating lossless using frame server and VirtualDub. Meaning in batch script where encoding line would follow. All you need to do is create *.vcf file, beforehand, one time only. Basically you record your setting in VirtualDub, you set everything , compression with its settings, full video processing, full audio processing, and click "file/Save processing settings..." , that creates that *.vcf file. Look on the web "creating of vcf file for virtualdub". Then you can use these lines in batch script:
Code:REM create lossless vdub.exe /s "create_lossless_procedure.vcf" /p "signpost.avi" "lossless.avi" /r REM create avisynth script here, just an example, you create correct one echo AVISource("lossless.avi", audio=false).AssumeFPS(60000,1001) > avisynth.avs echo ConvertToYV12(interlaced=false, matrix="rec709") >> avisynth.avs echo Lanczos4Resize( 1280, 720 ) >> avisynth.avs REM encode here x264.exe --crf 17 --whatever settings -o output.264 avisynth.avs
or that encoding line could be two lines if encoding 2pass VBR, perhaps that is the main reason to get lossless first I guess ...Last edited by _Al_; 23rd Oct 2015 at 01:16.
-
oh, btw, I had posted some time ago dmfs avi to MP4.BAT , that creates MP4 from AVI, using CRF only, no 2pass VBR, it has that dmfs in the name but it could be used with any avi file. That BAT needs two arguments, one avi file and one INI file, so frame's server avi or other avi files, like DV , lossles avi could be used. Those two arguments could be dropped manualy into that BAT in windows explorer or command line could be used:
_AVI_to_MP4.BAT "lossless.avi" "my.INI"
and that line could be called within your script so you can create MP4 for Youtube , and other things you need thru night, or while being at work, etc. all of it
CALL "C:\tools\dmfs avi to MP4\_AVI_to_MP4.BAT" "E:\lossless.avi" "C:\tools\dmfs avi to MP4\my.INI"
but I never checkd that one to be sure (you know paths correct etc., it should work though)
you'd just need to locate ending line and replace:
endlocal & echo press any key to exit ... & pause>nul & goto :eof
with just:
endlocal & goto :eof
that INI file is quite easy, you modify script as you want, paths, script also checks for syntax errors in Avisynth, if Avisynth script fails it would write a line where the problem was, it would not just crash without telling you that there was a problem in the script:
Code:path_destination :C:\Destination path_temp :C:\Temp x264_variables :--crf 17 --sar 8:9 --ref 6 --tune film --vbv-bufsize 20000 --vbv-maxrate 20000 nero_variables :-lc -cbr 256000 delete_temp_folder :yes mux_external_audio :no write avisynth script between lines, no loading clip line in there! -------------------------------------------------------------- AVISource("lossless.avi", audio=false).AssumeFPS(60000,1001) ConvertToYV12(interlaced=false, matrix="rec709") Lanczos4Resize( 1280, 720 ) --------------------------------------------------------------
Last edited by _Al_; 23rd Oct 2015 at 16:17.
-
That batch script line you suggested is pure genius! Using it, I was able to create the following batch file which works like a charm. I kick off the lossless export from PPro, which takes about 10 hours, then start the batch script. The encode portion of the batch script only starts once the lossless export is complete. So, now the export > encode steps are fully automated which is great for overnight runs!!! Thanks so much!
Code::: Declare variables set AVI=Lagarith.avi :: Check to see if the AVI is finished exporting from Premiere Pro :AVICheck ( type nul >> "%AVI%" ) 2> nul || GOTO Delay ::Encode as 1280x720p59.94 Blu-ray Compliant 2-pass x264 --bitrate 30000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 60 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o video.264 LagarithBR.avs x264 --bitrate 30000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 60 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o video.264 LagarithBR.avs goto:eof :Delay PING -n 11 127.0.0.1>nul GOTO AVICheck goto:eof
-
oh yes, it did not occur me that batch script could wait even for Premiere to finish encoding , to wait for that avi to be available
Similar Threads
-
x264 acting strange
By SameSelf in forum Video ConversionReplies: 8Last Post: 28th Jun 2015, 16:45 -
x264 error
By yaston in forum Video ConversionReplies: 8Last Post: 9th Apr 2015, 05:59 -
Frame error with x264
By ROBO731 in forum Video ConversionReplies: 2Last Post: 15th Jul 2013, 15:33 -
Ripbot / x264 error?
By clefus in forum Blu-ray RippingReplies: 5Last Post: 18th Dec 2012, 22:31 -
Error with x264
By werdes in forum Video ConversionReplies: 0Last Post: 30th Jan 2011, 13:10