Можно ли передать и отфильтровать вывод HandbrakeCli или заставить его замолчать в Windows?
У меня есть видеоархив личных воспоминаний, организованных во множество папок. Видеофайлы имеют несколько типов файлов, и соотношение качества и размера ужасно (некоторые даже 20 Мбит / с для видео 720p.
Я хочу преобразовать каждое видео в формат 720p и заменить его преобразованным файлом, но только если преобразование прошло успешно.
Вот мой пресет Handbrake, экспортированный в json:
{ "PresetList": [ { "AlignAVStart": true, "AudioCopyMask": [ "copy:aac", "copy:ac3", "copy:dtshd", "copy:dts", "copy:mp3", "copy:truehd", "copy:flac", "copy:eac3" ], "AudioEncoderFallback": "ac3", "AudioLanguageList": [], "AudioList": [ { "AudioBitrate": 128, "AudioCompressionLevel": 0.0, "AudioEncoder": "av_aac", "AudioMixdown": "stereo", "AudioNormalizeMixLevel": false, "AudioSamplerate": "44.1", "AudioTrackQualityEnable": false, "AudioTrackQuality": -1.0, "AudioTrackGainSlider": 0.0, "AudioTrackDRCSlider": 0.0 } ], "AudioSecondaryEncoderMode": true, "AudioTrackSelectionBehavior": "first", "ChapterMarkers": true, "ChildrenArray": [], "Default": false, "FileFormat": "av_mp4", "Folder": false, "FolderOpen": false, "Mp4HttpOptimize": false, "Mp4iPodCompatible": false, "PictureAutoCrop": true, "PictureBottomCrop": 0, "PictureLeftCrop": 0, "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 240, "PictureDeblock": 4, "PictureDeinterlaceFilter": "decomb", "PictureCombDetectPreset": "default", "PictureCombDetectCustom": "", "PictureDeinterlacePreset": "default", "PictureDenoiseCustom": "", "PictureDenoiseFilter": "off", "PictureDenoisePreset": "light", "PictureDenoiseTune": "none", "PictureSharpenCustom": "", "PictureSharpenFilter": "off", "PictureSharpenPreset": "medium", "PictureSharpenTune": "none", "PictureDetelecine": "off", "PictureDetelecineCustom": "", "PictureItuPAR": false, "PictureKeepRatio": true, "PictureLooseCrop": false, "PictureModulus": 2, "PicturePAR": "auto", "PicturePARWidth": 1, "PicturePARHeight": 1, "PictureRotate": "0:0", "PictureForceHeight": 0, "PictureForceWidth": 0, "PresetName": "myarchivesd", "Type": 1, "UsesPictureFilters": false, "UsesPictureSettings": 2, "SubtitleAddCC": false, "SubtitleAddForeignAudioSearch": true, "SubtitleAddForeignAudioSubtitle": false, "SubtitleBurnBehavior": "foreign", "SubtitleBurnBDSub": false, "SubtitleBurnDVDSub": false, "SubtitleLanguageList": [], "SubtitleTrackSelectionBehavior": "none", "VideoAvgBitrate": 0, "VideoColorMatrixCode": 0, "VideoEncoder": "x264", "VideoFramerateMode": "vfr", "VideoGrayScale": false, "VideoHWDecode": false, "VideoScaler": "swscale", "VideoPreset": "fast", "VideoTune": "", "VideoProfile": "main", "VideoLevel": "4.1", "VideoOptionExtra": "", "VideoQualityType": 2, "VideoQualitySlider": 25.0, "VideoQSVDecode": false, "VideoQSVAsyncDepth": 4, "VideoTwoPass": false, "VideoTurboTwoPass": false, "x264Option": "level=4.1:vbv-bufsize=62500:vbv-maxrate=50000:rc-lookahead=30:ref=5:bframes=5:b-adapt=2:direct=auto:me=dia:subme=9:merange=15:trellis=0", "x264UseAdvancedOptions": true } ], "VersionMajor": "11", "VersionMicro": "0", "VersionMinor": "0" }
До сих пор мне удалось найти правильные аргументы для преобразования с HandbrakeCli. Используя пресет, который я настроил с помощью HandbrakeGui (дает качество почти YIFY):
HandBrakeCLI.exe --maxHeight 720 --maxWidth 1280 --preset-import-file "mypreset.json" -Z "mypreset" -i "input.mp4" -o "output.mp4".
Обновить:
Это моя текущая версия командного файла.
- Сначала вам нужно указать путь к вашему
hanbrakecli.exe
и вашемуpreset.json
файлу в командном файле ниже. - Затем скопируйте пакетный файл в корневой каталог вашего видеоархива и дважды щелкните по нему.
Примечание: будьте осторожны с .DAT
расширением. только скопируйте этот пакет в папку, где есть только видеофайлы, но нет данных приложения.
Вот содержимое пакетного файла:
@echo off &setlocal for /R %%I in (*.DAT *.mpg *.mpeg *.wmv *.3gp *.mov *.avi *.mkv *.mp4) do ( set "fpath=%%~dpnI" set "fname=%%~nI" setlocal enabledelayedexpansion if exist "%%~dpnI.unfinished.mp4" ( echo "Found unfinished conversion of %%~nI. Deleting leftover files ..." del /F "%%~dpnI.unfinished.mp4" ) if "!fname!"=="!fname:.converted=!" ( echo "converting %%I ..." "[path to HandbrakeCli.exe]" --maxHeight 720 --maxWidth 1280 --preset-import-file "[path to your preset.json]" ^ -Z "[your preset name]" -i "%%I" -o "%%~dpnI.unfinished.mp4" if exist "%%~dpnI.unfinished.mp4" ( echo "conversion of %%I succeded. deleting the source file..." del /F "%%~dpnxI" move /Y "%%~dpnI.unfinished.mp4" "%%~dpnI.converted.mp4" )else ( echo "conversion of %%I was not successful. Keeping the source file!" if exist "%%~dpnI.unfinished.mp4" ( del /F "%%~dpnI.unfinished.mp4" ) ) )else ( echo "We already have %%I. No need to convert it again!" ) ) endlocal PAUSE
Что это делает:
- Он ищет каждый файл с общими расширениями фильма.
- проверяет, успешно ли он преобразовал его раньше или нет (с помощью шаблона именования).
- начинает преобразование и помещение выходного файла в каталог входных файлов (с помощью команды hanbrakecli)
- проверяет успешное преобразование (по шаблону именования)
- удаляет входной файл
Мои текущие проблемы: Вывод команды handbrakecli очень многословен и безобразен. было бы лучше, если бы он выводил только прогресс конвертации и оставшееся время или вообще не вводил.
Возможно ли передать и отфильтровать выходной сигнал ручного тормоза или заставить его замолчать?
0 ответов на вопрос
Похожие вопросы
-
4
Присоединитесь к двум файлам фильма h.264, объединяя главы?
-
4
Какой самый простой способ конвертировать видео MPEG в формат FLV?
-
2
Как я могу кодировать файл VRO в файл AVI
-
-
7
Какой инструмент я могу использовать для копирования DVD фильмов?
-
1
Как я могу исправить проблемы с чересстрочной дрожью видео при воспроизведении на DVD-плеерах? (Микш...
-
5
Как автоматически переместить файл на другой компьютер в сети?
-
1
Как просматривать видео на veoh.com с помощью HT03-A Android
-
5
Преобразование видеофайла .mts HD в более удобный / гибкий формат?
-
1
Ручной тормоз стека при преобразовании видео
-
2
Установка нескольких переменных среды в оболочке, созданной с помощью пакетного сценария Windows