tracker участник
зарегистрирован: 29.10.2014 сообщений: 152 |
написано: 10 августа 2016г. 23:00:14 |
ответить • правка • инфо • #201 |
Идеальный рецепт для перекодирования видеозаписей с вебчатов. * Идеальный - не значит лёгкий. * Правильная работа на WinXP не гарантируется * Все слэши в путях заменены на _, тк форум их блочит
1. Необходим фреймсервер обработки видео-аудио - AviSynth AviSynth+ - http://avs-plus.net [Download (x86/x64) Installer]
И обновим его. На момент написания, это был Avisynth+ r1858 MT with VDubFilter x64 fix https://github.com/pinterf/AviSynthPlus/releases
цитата: avisynth.dll ----------------------- 64 bit OS: x64 -› c:_windows_system32 x86 -› c:_windows_SysWOW64
32 bit OS x86 -› c:_windows_system32
VDubFilter.dll ----------------------- x64 -› c:_Program Files (x86)_AviSynth+_plugins64+ x86 -› c:_Program Files (x86)_AviSynth+_plugins+
2. Обязательно добавляем необходимые плагины:
2.1 FFmpegSource - https://github.com/FFMS/ffms2/releases ffms2.dll ffms2.lib ffmsindex.exe ----------------------- x64 -› c:_Program Files (x86)_AviSynth+_plugins64+ x86 -› c:_Program Files (x86)_AviSynth+_plugins+
2.2 LSMASHSource - http://www.dropbox.com/sh/3i81ttxf028m1eh/AAABkQn4Y5w1k-toVhYLasmwa?dl=0 Всё так-же как и с FFmpegSource
2.3 Deblock_QED и Camcorder color denoise - https://cloud.mail.ru/public/83KE/1yD67F9tV DctFilter_test.dll deblock.dll masktools2.dll ccd.vdf Deblock_QED_MT2Mod.avsi ----------------------- x64 -› нет x86 -› c:_Program Files (x86)_AviSynth+_plugins+
3.Извлекаем только видео и аудио дорожки из FLV, таймкоды не трогаем.
FLV Extract 1.6.5 - http://www.videohelp.com/download/FLV_Extract165.zip
4.Переупаковываем исходник в mkv.
MKVtoolnix - http://www.videohelp.com/software/MKVtoolnix Можно через "MKVToolNix GUI" c ярлыка на раб.столе, или "C:_Program Files_MKVToolNix_mkvmerge.exe" --verbose --output "source.mkv" "source.flv"
5. Извлекаем таймкоды
"C:_Program Files_MKVToolNix_mkvextract.exe" timecodes_v2 "source.mkv" 0:source_timecodes.txt После удачного создания файла таймкодов удаляем source.mkv
6.Создаем source.avs файл сценария с таким содержимым:
цитата: LoadPlugin("C:_Program Files (x86)_AviSynth+_plugins+_LSMASHSource.dll") LoadPlugin("C:_Program Files (x86)_AviSynth+_plugins+_ffms2.dll") LoadPlugin("C:_Program Files (x86)_AviSynth+_plugins+_VDubFilter.dll") LoadPlugin("C:_Program Files (x86)_AviSynth+_plugins+_masktools2.dll") LoadPlugin("C:_Program Files (x86)_AviSynth+_plugins+_deblock.dll") LoadPlugin("C:_Program Files (x86)_AviSynth+_plugins+_DctFilter_test.dll") LoadVirtualDubPlugin ("C:_Program Files (x86)_AviSynth+_plugins+_ccd.vdf", "CCD",1) Import("C:_Program Files (x86)_AviSynth+_plugins+_Deblock_QED_MT2Mod.avsi")
v=FFVideoSource("C:_source.264").ConvertToRGB32().CCD(15,1).ConvertToYV12().Deblock_QED() a=LWLibavAudioSource("C:_source.spx")
AudioDub(v,a)
Где C:_source.264 и C:_source.spx вставляем исходя из 3'го пункта.
7. Кодируем видео через ffmpeg.
7.1 32бит ОС: FFmpeg + fdk_aac (x86) - https://cloud.mail.ru/public/E4Sb/E7fMv6zcr
цитата:ffmpeg.exe -i "C:_source.avs" -vf hqdn3d=2:1 -c:v libx264 -level 4.1 -preset veryslow -crf 20 -qmin 18 -psy 0 -x264opts aq-mode=2:direct=spatial -c:a libfdk_aac -profile:a aac_he -vbr 1 "C:_sample.mkv" 7.2 64бит ОС: FFmpeg + fdk_aac (x86) - https://cloud.mail.ru/public/E4Sb/E7fMv6zcr FFmpeg + fdk_aac (x64) - http://cloud.mail.ru/public/AZvW/8GnBLEkk9
цитата:ffmpeg.exe -loglevel warning -i "C:_source.avs" -c copy -f ffm "-" | ffmpeg64.exe -i "-" -vf hqdn3d=2:1 -c:v libx264 -level 4.1 -preset veryslow -crf 20 -qmin 18 -psy 0 -x264opts aq-mode=2:direct=spatial -c:a libfdk_aac -profile:a aac_he -vbr 1 "C:_sample.mkv"
8. Переупаковываем с файлом таймкодов: "C:_Program Files_MKVToolNix_mkvmerge.exe" --verbose --timecodes 0:source_timecodes.txt --output "source_encode.mkv" "sample.mkv" После удачного создания файла, удаляем sample.mkv, source_timecodes.txt, *.264, *.spx, *.lwi, *.ffindex
В итоге имеем обработанный файл (source_encode.mkv) с устраненными дефектами блочности(квадратичности), цветовых и яркостных шумов, что даёт большой выигрыш в конечном размере при кодировании с сохранением заданного уровня качества картинки (кодек сам подбирает нужный битрейт). В добавок видео и аудио будут без расинхрона и без потерь кадров.
Данная инструкция применима только для записей с вебчатов и не желательна к другим видео, в виду специфичности используемых плагинов обработки и настроек кодирования.
p.s. Если изначальная запись была сжата в AVC(h264) да и с применением CABAC'a, то шанс на хорошее сжатие стремится к нулю. т.е. если MediaInfo показывает в свойствах файла кодек AVC и CABAC=yes, то оставьте его как есть. Если CABAC'a нет, можно попытать счастье.
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
Для исправления кривых видео (отсутствует перемотка) без перекодирования, можно прибегнуть к такому способу (без использования AviSynth):
цитата:ffmpeg.exe -i "C:video.flv" -vsync 0 -c:v copy -c:a libfdk_aac -profile:a aac_he -vbr 1 "C:video.mp4" Где "C:video.flv" и "C:video.mp4" меняем на необходимое.
- В некоторых случаях возможна ошибка из-за не поддерживаемого видео-кодека форматом mp4. Тогда меняйте *.mp4 -› *.mkv - Формат *.avi крайне устаревший, и его использование крайне не рекомендуется. |
|