Last active
August 2, 2022 19:56
-
-
Save abakum/7d2acab509cff10a5245c96af48f6570 to your computer and use it in GitHub Desktop.
Convert mvc to yt=sbsl rl=sbsr sbs=sbs2l rlq=sbs2r tab=ab2l ba=abr baq=ab2r ab=abl frameseq=alt lines=row arcd hdmi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SetLocal EnableExtensions EnableDelayedExpansion | |
:main | |
echo Convert mvc to yt=sbsl rl=sbsr sbs=sbs2l rlq=sbs2r tab=ab2l ba=abr baq=ab2r ab=abl frameseq=alt lines=row arcd hdmi | |
echo Run "mvc2x.bat" without parameters to place it in "%UserProfile%\SendTo" | |
echo Send "c:\d\" to "mvc2x" | |
echo or drop it to "mvc2x.bat" | |
echo "c:\d\film\BD\BDMV\STREAM\00001.m2ts" and "c:\d\film\BD\BDMV\STREAM\00002.m2ts" will be used as mvc source | |
echo "c:\d\film\d.mkv" will be used as sound and metadata source | |
echo Then look at "c:\d\x\d.mkv" where x is you choose | |
if "%~1"=="" ( | |
if NOT EXIST "%UserProfile%\SendTo\%~n0.lnk" ( | |
if DEFINED ChocolateyInstall ( | |
"%ChocolateyInstall%\tools\shimgen" -o "%UserProfile%\SendTo\%~n0.exe" -p "%~f0" | |
) else ( | |
copy /b "%~f0" "%UserProfile%\SendTo\%~nx0" | |
) | |
echo "%~f0" is placed in "%UserProfile%\SendTo" | |
) | |
pause | |
goto :EOF | |
) | |
set pFRIM=y:\PortableApps\FRIM\ | |
set pFFmpeg=y:\PortableApps\ffmpeg64\bin\ | |
set pMKVToolNix=y:\PortableApps\mkvToolNix64\ | |
set cFFmpeg=-profile:v high -level 51 -b:v 8M -maxrate 16M -bufsize 11M -g 25 -bf 0 -slices 4 -refs 0 | |
set cFRIM= -profile high -level 5.1 -vbr 8000 16000 -cpbsize 11000 -gop 25 1 0 C -l 4 -rf 0 | |
:choice | |
echo y~t R~l s~bs r~lq t~ab B~a b~aq A~b f~rameseq l~ines a~rcd h~dmi | |
choice /cs /c yRsrtBbAflah | |
goto :%ERRORLEVEL% | |
:0 | |
echo yt=sbsl rl=sbsr sbs=sbs2l rlq=sbs2r tab=ab2l ba=abr baq=ab2r ab=abl frameseq=alt lines=row arcd hdmi | |
set /p m=^> | |
if NOT DEFINED m goto :choice | |
:1 | |
set m=yt | |
goto :loop | |
:2 | |
set m=rl | |
goto :loop | |
:3 | |
set m=sbs | |
goto :loop | |
:4 | |
set m=rlq | |
goto :loop | |
:5 | |
set m=tab | |
goto :loop | |
:6 | |
set m=ba | |
goto :loop | |
:7 | |
set m=baq | |
goto :loop | |
:8 | |
set m=ab | |
goto :loop | |
:9 | |
set m=frameseq | |
goto :loop | |
:10 | |
set m=lines | |
goto :loop | |
:11 | |
set m=arcd | |
goto :loop | |
:12 | |
set m=hdmi | |
:loop | |
if "%~1"=="" ( | |
echo Thanks videofan3d https://sites.google.com/site/videofan3d/software/frim-encoder | |
echo Thanks Moritz Bunkus https://mkvtoolnix.download | |
echo Thanks Chocolatey https://chocolatey.org | |
echo Thanks FFmpeg https://ffmpeg.org | |
pause | |
goto :EOF | |
) | |
cd /d "%~1" | |
call :doit "%~n1" | |
shift | |
goto :loop | |
:doit | |
set l="film\BD\BDMV\STREAM\00001.m2ts" | |
if NOT EXIST %l% goto :EOF | |
set r="film\BD\BDMV\STREAM\00002.m2ts" | |
if NOT EXIST %r% goto :EOF | |
set s="film\%~1.mkv" | |
if NOT EXIST %s% goto :EOF | |
set h264=%temp%\%m%.264 | |
set mka=%temp%\%m%.mka | |
set mkv="%m%\%~1.mkv" | |
for /f usebackq %%i in (`%pFFmpeg%ffprobe -v 0 %s% -select_streams v:0 -show_entries "stream=height,width,r_frame_rate" -of "default=noprint_wrappers=1"`) do set %%i | |
set /a f=%r_frame_rate% | |
set ef=%f% | |
set cv=libx264 | |
set cv= | |
set enc=vf | |
set enc=complex | |
set enc=frim | |
call :%m% | |
goto :tc | |
:sbsl | |
:yt | |
:lr | |
set sm=sbs | |
set o=-o - | |
set /a ew=%width%*2 | |
set eh=%height% | |
set stereo3d=sbsl | |
set framepack=[l][r]framepack=sbs | |
set stereo-mode=side_by_side_left_first | |
goto :EOF | |
:sbsr | |
:rl | |
set sm=sbs | |
set o=-swaplr -o - | |
set /a ew=%width%*2 | |
set eh=%height% | |
set stereo3d=sbsr | |
set framepack=[r][l]framepack=sbs | |
set stereo-mode=side_by_side_right_first | |
goto :EOF | |
:sbs2l | |
:sbs | |
:lrq | |
set sm=sbs | |
set /a hw=%width%/2 | |
set o=-o - -dstsize %hw% %height% -dstarea 0 0 %hw% %height% | |
set ew=%width% | |
set eh=%height% | |
set stereo3d=sbs2l | |
set framepack=[l][r]framepack=sbs | |
set stereo-mode=side_by_side_left_first | |
goto :EOF | |
:sbs2r | |
:rlq | |
set sm=sbs | |
set /a hw=%width%/2 | |
set o=-swaplr -o - -dstsize %hw% %height% -dstarea 0 0 %hw% %height% | |
set ew=%width% | |
set eh=%height% | |
set stereo3d=sbs2r | |
set stereo_mode=right_left | |
set framepack=[r][l]framepack=sbs | |
set stereo-mode=side_by_side_right_first | |
goto :EOF | |
:ab2l | |
:tab | |
set sm=tab | |
set /a hh=%height%/2 | |
set o=-o - -dstsize %width% %hh% -dstarea 0 0 %width% %hh% | |
set ew=%width% | |
set eh=%height% | |
set stereo3d=ab2l | |
set framepack=[l][r]framepack=tab | |
set stereo-mode=top_bottom_left_first | |
goto :EOF | |
:abr | |
:ba | |
set sm=tab | |
set o=-swaplr -o - | |
set ew=%width% | |
set /a eh=%height%*2 | |
set stereo3d=abr | |
set framepack=[r][l]framepack=tab | |
set stereo-mode=top_bottom_right_first | |
goto :EOF | |
:ab2r | |
:baq | |
set sm=tab | |
set /a hh=%height%/2 | |
set o=-swaplr -o - -dstsize %width% %hh% -dstarea 0 0 %width% %hh% | |
set ew=%width% | |
set eh=%height% | |
set stereo3d=ab2r | |
set framepack=[r][l]framepack=tab | |
set stereo-mode=top_bottom_right_first | |
goto :EOF | |
:abl | |
:ab | |
set sm=tab | |
set o=-o - | |
set ew=%width% | |
set /a eh=%height%*2 | |
set stereo3d=abl | |
set framepack=[l][r]framepack=tab | |
set stereo-mode=top_bottom_left_first | |
goto :EOF | |
:frameseq | |
:alt | |
:al | |
set sm=alt | |
set o=-o - | |
set ew=%width% | |
set eh=%height% | |
set /a ef=%f%*2 | |
set stereo3d=al | |
set framepack=[l][r]framepack=frameseq,settb=1/%ef%,setpts=N | |
set stereo-mode=both_eyes_laced_left_first | |
goto :EOF | |
:arcd | |
set sm=sbs | |
set o=-o - | |
set /a ew=%width%*2 | |
set eh=%height% | |
set stereo3d=sbsl:arcd | |
set framepack= | |
set stereo-mode=anaglyph_cyan_red | |
set enc=complex | |
goto :EOF | |
:lines | |
:row | |
set sm=tab | |
set /a hh=%height%/2 | |
set o=-o - -dstsize %width% %hh% -dstarea 0 0 %width% %hh% | |
set ew=%width% | |
set eh=%height% | |
set stereo3d=ab2l | |
set framepack=[l][r]framepack=lines | |
set stereo-mode=row_interleaved_left_first | |
set enc=complex | |
goto :EOF | |
:hdmi | |
set sm=tab | |
set o=-o - | |
set ew=%width% | |
set /a eh=%height%*2 | |
set stereo3d=abl:hdmi | |
set framepack= | |
set stereo-mode= | |
goto :EOF | |
:hw | |
if "%enc%"=="frim" goto :EOF | |
set cv=%1 | |
if "%1"=="libx264" goto :EOF | |
%pFFmpeg%ffmpeg -v 0 -f lavfi -i color=s=%ew%x%eh% -c:v %cv% -r %ef% %cFFmpeg% -frames:v 1 -y %h264% | |
if "%ERRORLEVEL%"=="0" goto :EOF | |
shift | |
goto :hw | |
:tc | |
set FRIMDecode=%pFRIM%FRIMDecode64 -ts -i:mvc %l% %r% -%sm% %o% | |
: -length 100 | |
if not DEFINED cv call :hw h264_qsv h264_nvenc h264_amf libx264 | |
set Encode=%pFFmpeg%ffmpeg -v 0 -f rawvideo -s %ew%x%eh% -r %ef% -pix_fmt yuv420p -i - -filter_complex stereo3d=%stereo3d%,setdar=%width%/%height% -c:v %cv% -r %ef% %cFFmpeg% -pix_fmt yuv420p -y %h264% | |
if DEFINED framepack set Encode=%pFFmpeg%ffmpeg -v 0 -f rawvideo -s %ew%x%eh% -r %ef% -pix_fmt yuv420p -i - -filter_complex split[ml][mr],[ml]stereo3d=%stereo3d%:ml[l],[mr]stereo3d=%stereo3d%:mr[r],%framepack%,setdar=%width%/%height% -c:v %cv% -r %ef% %cFFmpeg% -pix_fmt yuv420p -y %h264% | |
if "%enc%"=="frim" set Encode=%pFRIM%FRIMEncode64 -i - -o:h264 %h264% -%sm% 2 -size %ew% %eh% -dar %width%:%height% -f %ef% %cFRIM% | |
if "%enc%"=="vf" set Encode=%pFFmpeg%ffmpeg -v 0 -f rawvideo -s %ew%x%eh% -r %ef% -pix_fmt yuv420p -i - -vf setdar=%width%/%height% -c:v %cv% -r %ef% %cFFmpeg% -pix_fmt yuv420p -y %h264% | |
if NOT DEFINED stereo-mode set Encode=%pFFmpeg%ffplay -f rawvideo -video_size %ew%x%eh% -pixel_format yuv420p -i - -vf stereo3d=%stereo3d%,setdar=%width%/%height% -af amovie=%s% -fs -x 1920 -y 2205 -autoexit | |
%FRIMDecode%|%Encode% | |
if NOT DEFINED stereo-mode goto :del | |
%pFFmpeg%ffprobe -v 0 -i %s% -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1|find "pcm" | |
if NOT ERRORLEVEL 1 ffmpeg -v 0 -i %s% -map_metadata -1 -map_metadata:s:a -1 -c:a flac -map 0:a -map_chapters -1 -y %mka% | |
set fmka=-D | |
if EXIST %mka% set fmka= =%mka% -A -D | |
set mkvmerge=%pMKVToolNix%mkvmerge -o %mkv% --stereo-mode 0:%stereo-mode% --disable-track-statistics-tags -A -S -B -M -T --no-global-tags --no-chapters =%h264% %fmka% =%s% | |
%mkvmerge% | |
:del | |
del %h264% %mka% | |
echo %FRIMDecode% | |
echo %Encode% | |
echo %mkvmerge% |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To see in 3D video encoded with line-by-line alternation of angles (lines=row), select the 2D->3D mode in LG 3D TV
HDMI mode do not convert mvc to hdmi%1.mkv but play it over hdmi plugged 3D TV via FFplay