FFmpeg - инструмент обработки аудио и видеофайлов.
FFprobe - инструмент командной строки, часть проекта FFmpeg для анализа мультимедийных файлов.
Установка FFmpeg и FFprobe на Windows для перекодировки видео и аудио:
# ==== КОНВЕРТАЦИЯ ====
# ==== КОНВЕРИТОРОВАТЬ ВСЮ ПАПКУ С ПОДПАПКАМИ И ПОЛОЖИТЬ В ПАПКУ "convert" ====
cd D:\yt-dlp # папка, которую надо конвертировать, там же лежит yt-dlp.exe
Get-ChildItem *.* -recurse | % { ffmpeg.exe -i $_.FullName -s 1280x720 ("convert" + "" +$_.Name) }
# ==== КОНВЕРИТОРОВАТЬ ВСЮ ПАПКУ ====
dir *.* | foreach-object { $newname = $_.Name.Remove($_.Name.Length - $_.Extension.Length) + ".mp4"; ffmpeg.exe -i "$_" -s 720x1280 $newname }
# ==== КОНВЕРТИРОВАТЬ ОДИН ВИДЕОФАЙЛ В АУДИОФАЙЛ ====
ffmpeg -i video.mp4 audio.mp3 # конвертировать один видеофайл video.mp4 в аудиофайл audio.mp3
[System.Media.SystemSounds]::Asterisk.Play() # звук окончания
# ==== КОНВЕРИТОРОВАТЬ ВСЮ ПАПКУ С ВИДЕОФАЙЛАМИ В АУДИОФАЙЛЫ ====
cd D:\yt-dlp\convert\ # папка с видеофайлами, которые надо конвертировать в аудио
dir *.* | foreach-object { $newname = $_.Name.Remove($_.Name.Length - $_.Extension.Length) + ".mp3"; ffmpeg.exe -i "$_" $newname }
[System.Media.SystemSounds]::Asterisk.Play() # звук окончания
# ==== ВЫРЕЗАТЬ ФРАГМЕНТ ====
cd D:\yt-dlp\convert\ # папка с видеофайлом, у которого нужно вырезать фрагмент
ffmpeg -ss 00:12:30 -to 00:22:45 -i input.mp4 -c copy output.mp4 # вырезать (обрезать) фрагмент
# ==== ФИЛЬТР УДАЛЕНИЯ ПАУЗ В АУДИО ====
cmd = [
"ffmpeg",
"-i", str(input_path), # входной файл
"-ac", "1", # преобразовать звук в моно (1 канал)
"-ar", "16000", # понизить частоту 16 кГц
"-af", "silenceremove=start_periods=1:start_silence=0.3:start_threshold=-35dB:\
detection=peak", # фильтр для удаления пауз
str(output_path)
]
где:
start_periods=1 # реагирует на 1ю возникшую паузу
start_silence=0.3 # пауза считается значимой, если длится дольше 0.3 сек
start_threshold=-35dB # всё тише −35 дБ считается тишиной
detection=peak # на основе пикового сигнала в аудио