Войти

Показать полную графическую версию : Как восстановить поврежденный VOB файл


lost8923142
08-01-2022, 14:22
Как восстановить одновременно несколько поврежденных VOB файлов с помощью FFmpeg и командной строки?

alpap
08-01-2022, 17:23
как делаете для одного?

alpap
09-01-2022, 00:13
исходя из предшествующей (http://forum.oszone.net/thread-350417-2.html) темы (за основу взят код предложенный коллегой 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
Вместо 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

Iska
09-01-2022, 05:56
lost8923142, да, примерно так.

lost8923142
09-01-2022, 06:54
Не получилось.

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

Iska
09-01-2022, 07:11
lost8923142, приведённый код нужно было сохранить в виде пакетного файла в кодировке OEM/866, каковой уже и исполнять.

DJ Mogarych
09-01-2022, 11:08
Powershell:

dir "c:\Users\*.vob" |% {
& ffmpeg -i "$($_.fullname)" -c copy "$($_.DirectoryName)\$($_.Basename).mkv"
}

lost8923142
09-01-2022, 11:16
lost8923142, приведённый код нужно было сохранить в виде пакетного файла в кодировке OEM/866, каковой уже и исполнять. »
Можно поподробнее пожалуйста.

Iska
09-01-2022, 12:10
lost8923142, возьмите готовый пакетный файл из этого архива: 165970.

lost8923142
09-01-2022, 13:37
https://i.ibb.co/y4F6p2q/2.jpg (https://ibb.co/3RmpvKc)
Текст файла:

@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

alpap
09-01-2022, 15:30
после строки
@echo off
вставьте строку
>nul chcp 1251

lost8923142
10-01-2022, 00:27
после строки
@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




© OSzone.net 2001-2012