Hi
when I try lo load in avisynth file .mxf larger than about 2 Gb avisynth get "video track is unseekable"
is there a way to resolve?
thanks
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 30 of 98
Thread
-
-
Try FFVideoSource instead.
-Edit- I thought I told you to use DirectShowSource but apparently you didn't. And what's with this putting info in the Thread Name and not the actual thread business? It's confusing, you look at the thread name to see if it looks interesting or not.Last edited by ndjamena; 11th May 2014 at 08:34.
-
So, you've tried both FFVideoSource AND DirectShowSource then.
It would seem to be caused by something using a signed 32 bit integer somewhere, if neither of those work then you'll have to try cutting. -
possibly I don't want use directshowsource... hoewver directshowsource works well
-
Code:
@rem unless otherwise specified for debugging reasons turn echo off @if "%EMode%"=="" Set EMode=OFF @ECHO %EMode% rem delayed expansion is a bad idea when processing file names SetLocal DisableDelayedExpansion Set "EXTLIST=*.mxf" Set "DoPop=" rem if no arguments are given, process everything in the current directory. if [%1]==[] ( Set "Pattern=%EXTLIST%" CALL :START %1 ) rem process the arguments one by one. :ARGS rem if there are no further arguments then exit the batch. if [%1]==[] ( EndLocal pause goto :eof ) rem if the argument doesn't exist in the file system in any form skip it. if NOT EXIST %1 ( SHIFT goto :ARGS ) Set "Pattern=%EXTLIST%" rem if the argument is the current directory then process everything in it. if "%~f1"=="%CD%" ( CALL :START %1 SHIFT goto :ARGS ) rem Test if the argument is a directory, if it is move to it then process everything in it, if not then move to the file's parent directory and process the file. Then return to starting directory. Type NUL pushd "%~f1" 2> nul if NOT "%errorlevel%"=="0" ( if NOT "%CD%\"=="%~dp1" ( pushd "%~dp1" Set "DoPop=1" ) Set Pattern="%~nx1" ) else ( Set "DoPop=1" ) CALL :START %1 if "%DoPop%"=="1" ( popd Set "DoPop=" ) SHIFT goto :ARGS :START Set "Count=0" rem Process all files in the current directory fitting the arguments search pattern. for %%y in (%Pattern%) do ( CALL :Process_File "%%~fy" ) rem if the last for loop didn't find anything search all directories up one level instead if "%Count%"=="0" ( for /d %%b in (*) do ( pushd "%%~fb" CALL :START "%%~fb" popd ) ) goto :eof :Process_File Set /a Count+=1 SetLocal DisableDelayedExpansion rem Find TimeCode Info echo Processing; "%~nx1" set "HOUR=" for /f "tokens=1,2,3,4,5 delims=: " %%g in ('FFPROBE.EXE "%~1" 2^>^&1') DO ( if "%%~g"=="timecode" ( set "HOUR=%%~h" set "MINS=%%~i" set "SECS=%%~j" set "MILLI=%%~k" goto :next ) ) :NEXT if "%HOUR%"=="" ( echo NO TIMECODE FOUND IN: echo "%~1" pause ) else ( CALL :MAKEVCF "%~dpn1.vcf" "%~dpn1.avs" "%~dp1Temp.avi" "%~f1" ) echo Done! echo. echo --------------------------------------------- echo. EndLocal goto :eof :MAKEVCF rem ***Make The .vcf Script File*** echo VirtualDub.RemoveInputStreams^(^)^;>%1 echo VirtualDub.video.DeleteComments^(1^)^;>>%1 echo VirtualDub.video.AddComment^(0x0000000C,"","%HOUR%:%MINS%:%SECS%.%MILLI%"^)^;>>%1 echo VirtualDub.video.AdjustChapters^(1^)^;>>%1 echo VirtualDub.video.SetDepth^(24,24^)^;>>%1 echo VirtualDub.video.SetMode^(1^)^;>>%1 echo VirtualDub.video.SetFrameRate^(0,1^)^;>>%1 echo VirtualDub.video.SetIVTC^(0,0,-1,0^)^;>>%1 echo VirtualDub.video.SetCompression^(0x6a6d7674,0,10000 ,0^)^;>>%1 echo VirtualDub.video.SetCompData^(28,"TUpQRxgAAAAAAAAAA gAAAAgAAAACAAAAAQAAAA=="^)^;>>%1 echo VirtualDub.video.filters.Clear^(^)^;>>%1 rem ***Make The .avs AVISynth Script*** echo DirectShowSource^(%4^)>%2 rem ***Call VirtualDub[Mod] "C:\Program Files (x86)\VirtualDubMod\VirtualDubMod.exe" /s%1 /p%2,%3 /r /x goto :eof
-Edit- Some minor tweaking may be involved ie VirtualDub name/command line (this command line is for the current mainstream Virtualdub), contents of .vcr file etc...
-Edit2- There's a bug in my recursion code, it's supposed to stop at the first level it finds a video file, but it forgets after each directory. I haven't got round to fixing it yet.Last edited by ndjamena; 11th May 2014 at 15:11.
-
I have try to clean the avisynth dir, fresh install of avisynth and install of a clean ffms2 (R275) plugin:
now virtualdub open also large files but strangely need of several minutes to load. Seems hard disk C: work a lot as soon as a file copy by avisynth
If I use directshowsource the time to load is 1-2 seconds
maybe avisynth do an operation or a copy? -
*sigh* FFVideo Indexes the file first. It helps with seeking, which you're not interested in.
-
errata corrige: ffms2_2013-01-13_git-f081983_libav_git-ea81bb2.7z is the one I have try, not the R275
hoewver to load in VDM a video file of 2GB employ 2 minutes... seem too. Virtualdub with the FFinputDriverPlugin emplys 1 second
seems avisynth do a file copy into C: or internal buffering -
my .avs is:
FFVideoSource("i:\EXunseekable\26.mxf")
and i: is a separate hard disk
avisynth is on C:
Once 26.mxf if I try reload 26.mxf, loading is immediate
but if I trt lo load another larger file, e.g. my 12.mxf it employs 2 minutes
but if I reload 12.mxf, loading is immediate
but if I load from new 26.mxf it employs 2 minutes
... if I reload 26.mxf is immediate... -
I hope you're agreeing with me there. You could try pre-indexing them with ffmsindex.exe first if you're worried about it.
-
I have installed avisynth 2.5.8 wi this ffms2 plugin:
semms it don't have ffmsindex.exe, or don't need it however my proof is:
DirectShowSource ("26.mxf") = immediate opening in VDM
FFVideoSource("26.mxf") = 1-2 minutes to opening in VDM
if if there a way to immediate opening, maybe pre indexing, whit the ffms2 plugin would be a good idea -
ffmsindex.exe isn't a plugin, it's a program, you'll probably find it in your plugins folder, assuming that's where you put it. Just drag and drop anything you want indexed onto it and it will make an index for you. I could try to add look ahead to the batch so it can index future files while VirtualDub works on the current one if you like.
-
I don't have well understand: you says is there a way to open .mxf file directly in VirtualDubMOD without avisynth?
I'm forced to virtualdubmod because otherwise I cannot have timecode... -
for the moment my batch was this: but I have to change for use with virtualdubmod.exe and I have to build a batch that consider the input select .mxf file (%d%\%%~na.mxf) and have to generate a script of avisynth that assume %d%\%%~na.mxf as source
... FFvideosource("%d%\%%~na.mxf")
after this virtualdubmod.exe have to eat what avisynth have to get, but inserting the timecode
I try to use you batch to adapt my batch to do it .. if I'm able
color 2
xcopy /y V:\automazioneclip\VirtualDub\morgan\m3jpegHD.dll c:\windows\system32
xcopy /y v:\automazioneclip\VirtualDub\morgan\m3jpHD.ini c:\windows
xcopy /y v:\automazioneclip\VirtualDub\morgan\MMIJG32.dll c:\windows\system32
xcopy /y V:\automazioneclip\VirtualDub\morgan\m3jpegSD.dll c:\windows\system32
xcopy /y v:\automazioneclip\VirtualDub\morgan\m3jpSD.INI c:\windows
xcopy /y v:\automazioneclip\VirtualDub\morgan\MMIJG30.dll c:\windows\system32
regedit /s v:\automazioneclip\virtualdub\morgan\morganreg.reg
del v:\automazioneclip\output\temp.avi
del v:\automazioneclip\output\temp.wav
@echo on
set "d="
set "done="
set /p "d=Type source path (or press enter for current folder): "
if not defined d set "d=%cd%"
if not exist "%d%" echo Enter valid path - try again & goto :loop
:loop
cd /d "%d%"
del "temp.txt"
del "unicodefile.txt"
if exist "ascii.txt" del "ascii.txt"
DEL "mediainfo.txt"
for /f "delims=" %%a in ('dir *.mxf /b /od /a-d') do (
if defined done goto :EOF
if not exist "v:\automazioneclip\output\%%~na.*" (
echo %d%\%%~na.mxf|clip >nul
if exist mediainfo.txt del mediainfo.txt
v:\automazioneclip\virtualdub\MediaInfo.exe "%d%\%%~na.mxf" dumpinfo:unicodefile.txt
TYPE unicodefile.txt > ascii.txt
rename ascii.txt mediainfo.txt
findstr /c:"Commercial name : XDCAM HD422" "mediainfo.txt"
IF NOT ERRORLEVEL 1 (
v:\automazioneclip\core\ffmpeg.exe -y -i %d%\%%~na.mxf -filter_complex "[0:1] [0:2] amerge,volume=3" -c:a pcm_s16le v:\automazioneclip\output\%%~na.wav
v:\automazioneclip\core\ffmpeg.exe -y -i %d%\%%~na.mxf -filter_complex "[0:3] [0:4] amerge,volume=3" -c:a pcm_s16le v:\automazioneclip\output\%%~na.ch3ch4.wav
v:\automazioneclip\virtualdub\vdub.exe /max %d%\%%~na.mxf /s v:\automazioneclip\virtualdub\scriptHD.vcf
ren v:\automazioneclip\output\temp.avi %%~na.avi
v:\automazioneclip\virtualdub\cfourcc.exe -i v:\automazioneclip\output\%%~na.avi -u MJPG -d MJPG
del metadata.txt
v:\automazioneclip\core\ffmpeg.exe -y -i %d%\%%~na.mxf -f ffmetadata metadata.txt
v:\automazioneclip\core\ffmpeg.exe -y -i v:\automazioneclip\output\%%~na.avi -i metadata.txt -map_metadata 1 -vcodec copy -an v:\automazioneclip\output\%%~naTC.avi
del v:\automazioneclip\output\%%~na.avi
ren v:\automazioneclip\output\%%~naTC.avi %%~na.avi
del metadata.txt)
findstr /c:"Commercial name : IMX 50" "mediainfo.txt"
IF NOT ERRORLEVEL 1 (
v:\automazioneclip\core\ffmpeg.exe -i %d%\%%~na.mxf -map_channel 0.1.0 -map_channel 0.1.1 -af "volume=volume=9dBrecision=fixed" v:\automazioneclip\output\%%~na.wav
v:\automazioneclip\core\ffmpeg.exe -i %d%\%%~na.mxf -map_channel 0.1.2 -map_channel 0.1.3 -af "volume=volume=9dBrecision=fixed" v:\automazioneclip\output\%%~na.ch3ch4.wav
v:\automazioneclip\virtualdub\vdub.exe /max %d%\%%~na.mxf /s v:\automazioneclip\virtualdub\scriptSD.vcf
ren v:\automazioneclip\output\temp.avi %%~na.avi
v:\automazioneclip\virtualdub\cfourcc.exe -i v:\automazioneclip\output\%%~na.avi -u MJPG -d MJPG
del metadata.txt
v:\automazioneclip\core\ffmpeg.exe -y -i %d%\%%~na.mxf -f ffmetadata metadata.txt
v:\automazioneclip\core\ffmpeg.exe -y -i v:\automazioneclip\output\%%~na.avi -i metadata.txt -map_metadata 1 -vcodec copy -an v:\automazioneclip\output\%%~naTC.avi
del v:\automazioneclip\output\%%~na.avi
ren v:\automazioneclip\output\%%~naTC.avi %%~na.avi
del metadata.txt)
del "temp.txt"
del "unicodefile.txt"
if exist "ascii.txt" del "ascii.txt"
DEL "mediainfo.txt"
del metadata.txt
goto loop
set done=1
)
) -
I never said anything like that. I'd never say anything like that because I've never tried to open anything in VirtualDub with anything other than AVISynth. I think you must be talking to someone else.
-
oh I'm a cat, I don't speack well english
my batch choose the older .mxf file of a specify directory and discern from HD to SD
If is a .mxf HD do ...
If is a .mxf SD do ...
but now I cannot use moreover virtualdub. I'm forced to virtualdubmod because there is no possibilities to batch-automate the procedure of insertion the timecode. -
ndjamena please in your batch what is the part that create an .avs file that contatin the source %input%.mxf?
-
If you click on 'Go Advanced' there's a 'Code' Box [#] that will let you insert your script with all the tab characters I hope you use. It really would make it easier to read.
-
virtualdub have vdub.exe that can do:
vdub.exe /max %d%\%%~na.mxf /s scriptHD.vcf
but now I have virtualdubmod.exe that don't have any vdub.exe
I'm try to understand if is there a way to launch virtualdubmod.exe with a specific script -
-
ndjamena sorry, I try to adapt your script with mine
I use this .mxf
https://dl.dropboxusercontent.com/u/39871584/C0020.mxf
in a dir where I have VirtualDubMod 1.6.0.0 Surround and ffprobe.exe
- for the moment not consider my script -
to adapt your at the c0020.mxf I think the major question is adapt at the line
"VirtualDubMod.exe" /s"F:\Script.vcf" /p"F:\Video.avs","F:\Video.avi" /r /x
to "VirtualDub.exe" /s %1 /p %2 %3 /r /x
so to do that is necessary the script creare a phisical .vcf file (e.g. script.vcf) so virtualdubmod have script.vcd ready? otherwise I can no use your script -
Code:
"VirtualDub.exe" /s %1 /p %2 %3 /r /x
Code:"VirtualDubMod.exe" /s%1 /p%2,%3 /r /x