lost8923142 |
08-01-2022 14:22 2976983 |
Как восстановить поврежденный VOB файл
Как восстановить одновременно несколько поврежденных VOB файлов с помощью FFmpeg и командной строки?
|
исходя из предшествующей темы (за основу взят код предложенный коллегой Iska) можно попробовать такой вариант:
(Я не силен в ffmpeg, но утилита мощная и точно знаю что может работать с массивом, поэтому зная хорошо ее синтаксис вероятно можно обойтись без for и пр., утилита сама справится с разбором из папки и это будет конечно быстрее)
Код:
@echo off
set "foldVOB=C:\folderVOB"
set "ff=Путь к папке\ffmpeg.exe"
set "outFold=C:\outFolder"
if not exist "%outFold%" md "%outFold%"
pushd "%foldVOB%"
for /f "delims=" %%a in ('dir /a-d/b "*.VOB"') do (
"%ff%" -i "%%a" -c copy "%outFold%\%%~na.mkv"
)
popd
pause
|
lost8923142 |
09-01-2022 02:17 2977023 |
Вместо C:\folderVOB указывать папку, а не файл?
То есть в моём случае мне нужно ввести такой код?:
Код:
@echo off
set "foldVOB=C:\Users\Ал\Desktop\Downloads\DVD"
set "ff=C:\Users\Ал\Desktop\1\bin\ffmpeg.exe"
set "outFold=C:\Users\Ал\Desktop"
if not exist "%outFold%" md "%outFold%"
pushd "%foldVOB%"
for /f "delims=" %%a in ('dir /a-d/b "*.VOB"') do (
"%ff%" -i "%%a" -c copy "%outFold%\%%~na.mkv"
)
popd
pause
|
lost8923142, да, примерно так.
|
lost8923142 |
09-01-2022 06:54 2977027 |
Не получилось.
Код:
Microsoft Windows [Version 6.3.9600]
(c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.
C:\Users\Александр>@echo off
set "foldVOB=C:\Users\Ал\Desktop\Downloads\DVD"
set "ff=C:\Users\Ал\Desktop\1\bin\ffmpeg.exe"
set "outFold=C:\Users\Ал\Desktop"
if not exist "%outFold%" md "%outFold%"
pushd "%foldVOB%"
for /f "delims=" %%a in ('dir /a-d/b "*.VOB"') do (
Непредвиденное появление: %%a.
"%ff%" -i "%%a" -c copy "%outFold%\%%~na.mkv"
ffmpeg version 2022-01-03-git-68d0a7e446-essentials_build-www.gyan.dev Copyright
(c) 2000-2022 the FFmpeg developers
built with gcc 11.2.0 (Rev5, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32thr
eads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --e
nable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-l
ibsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-l
ibwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enab
le-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable
-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-l
ibzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enabl
e-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-
libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enab
le-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb
--enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
libavutil 57. 13.100 / 57. 13.100
libavcodec 59. 15.102 / 59. 15.102
libavformat 59. 12.100 / 59. 12.100
libavdevice 59. 1.100 / 59. 1.100
libavfilter 8. 21.100 / 8. 21.100
libswscale 6. 1.102 / 6. 1.102
libswresample 4. 0.100 / 4. 0.100
libpostproc 56. 0.100 / 56. 0.100
%%a: No such file or directory
)
popd
pause
|
lost8923142, приведённый код нужно было сохранить в виде пакетного файла в кодировке OEM/866, каковой уже и исполнять.
|
DJ Mogarych |
09-01-2022 11:08 2977040 |
Powershell:
Код:
dir "c:\Users\*.vob" |% {
& ffmpeg -i "$($_.fullname)" -c copy "$($_.DirectoryName)\$($_.Basename).mkv"
}
|
lost8923142 |
09-01-2022 11:16 2977041 |
Цитата:
Цитата Iska
lost8923142, приведённый код нужно было сохранить в виде пакетного файла в кодировке OEM/866, каковой уже и исполнять. »
|
Можно поподробнее пожалуйста.
|
Вложений: 1
lost8923142, возьмите готовый пакетный файл из этого архива: Файл 165970.
|
lost8923142 |
09-01-2022 13:37 2977050 |

Текст файла:
Код:
@echo off
set "foldVOB=C:\Users\Ал\Desktop\Downloads\DVD"
set "ff=C:\Users\Ал\Desktop\1\bin\ffmpeg.exe"
set "outFold=C:\Users\Ал\Desktop"
if not exist "%outFold%" md "%outFold%"
pushd "%foldVOB%"
for /f "delims=" %%a in ('dir /a-d/b "*.VOB"') do (
"%ff%" -i "%%a" -c copy "%outFold%\%%~na.mkv"
)
popd
pause
|
после строки
@echo off
вставьте строку
>nul chcp 1251
|
lost8923142 |
10-01-2022 00:27 2977116 |
Цитата:
Цитата alpap
после строки
@echo off
вставьте строку
>nul chcp 1251 »
|
Да, с этим кодом всё получилось.
Iska и alpap, большое вам спасибо!
Код:
@echo off
>nul chcp 1251
set "foldVOB=C:\Users\Ал\Desktop\Downloads\DVD"
set "ff=C:\Users\Ал\Desktop\1\bin\ffmpeg.exe"
set "outFold=C:\Users\Ал\Desktop"
if not exist "%outFold%" md "%outFold%"
pushd "%foldVOB%"
for /f "delims=" %%a in ('dir /a-d/b "*.VOB"') do (
"%ff%" -i "%%a" -c copy "%outFold%\%%~na.mkv"
)
popd
pause
|
Время: 23:46.
© OSzone.net 2001-