==================================================================================== === Пояснения: ==================================================================================== # == libx264 используется для воспроизведения видео нативными возможностями браузера == crf - уровень качества изображения. Меньше - качественнее ==================================================================================== === Простая конвертация mkv-to-mp4: ==================================================================================== # ffmpeg -i video.mkv -vcodec copy -acodec mp3 video.mp4 ==================================================================================== === Простая конвертация с выбором кодека для видео и аудио: ==================================================================================== # ffmpeg -i "1.avi" -vcodec libx264 -c:a mp3 "1.mp4" ==================================================================================== === Конвертировать видео с выбором конкретной звуковой дорожки: ==================================================================================== # ffmpeg -i '1.avi' -vcodec libx264 -c:a mp3 -crf 24 -map 0:0 -map 0:2 '1.mp4' ==================================================================================== === Конвертировать mkv в mp4 пакетно: ==================================================================================== # for t in *.mkv do name=$(basename -s .mkv "$t") ffmpeg -i "$t" -vcodec copy -acodec mp3 "$name.mp4" done ==================================================================================== === Конвертировать часть видео с заданной точки на таймлайне. В этом случае конвертация начинается с 22-й минуты (параметр "-ss"). Итоговый отрезок будет длиной в 30 секунд (параметр "-t"): ==================================================================================== # ffmpeg -ss 00:22:00.0 -i "1.avi" -vcodec libx264 -c:a mp3 -crf 27 -map 0:0 -map 0:1 -t 00:00:30.0 "1.mp4" ==================================================================================== === Просмотр списка доступных для использования устройств: ==================================================================================== # ffmpeg -list_devices true -f dshow -i dummy ==================================================================================== === Захват звука и изображения с десктопа (аудиоустройство получено из списка подключенных устройств): ==================================================================================== # ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 output.mkv -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{7A667388-B14F-4006-8F7A-3B659C363B17}" desktop.mp4 ==================================================================================== === Захват звука и изображения с веб-камеры (устройства получены из списка подключенных устройств): ==================================================================================== # ffmpeg -f dshow -i video="USB Video Device":audio="Микрофон (2- USB Audio Device)" -vf format=yuv422p camera.mp4 ==================================================================================== === Реверс аудио и видео: ==================================================================================== # ffmpeg -i input.mp4 -vf reverse -af areverse output.mp4 ==================================================================================== === Получить полную раскадровку видео с именованными джипегами в текущем каталоге: ==================================================================================== # ffmpeg -y -i "name.mp4" -sameq "name.%04d.jpg" ==================================================================================== === Перекодировать все видео с конкретной звуковой дорожкой: ==================================================================================== # $a = (Get-ChildItem -File -Path .).FullName foreach ($i in $a) { $nameonly = $i.Split('\')[-1] $splitted_name = $nameonly.Split(".") $name_without_ext = ([string]$splitted_name[0..($splitted_name.count-2)]).Replace(' ','_') ffmpeg -i $nameonly -vf scale=1280:720 -vcodec libx264 -c:a mp3 -map 0:0 -map 0:1 -crf 27 "$name_without_ext.mp4" ## не скейлить, а оставить дефолт. Изменить только качество: # ffmpeg -i $nameonly -vcodec libx264 -c:a mp3 -crf 26 "$name_without_ext.mp4" ## сконвертировать отрезок с заданным качеством: # ffmpeg -ss 00:19:00.0 -i $nameonly -vcodec libx264 -c:a mp3 -map 0:0 -map 0:1 -crf 29 -t 00:02:00.0 "$name_without_ext.mp4" } ==================================================================================== === Сделать хардсабы из софтсабов: ==================================================================================== # == Извлечь субтитры из видеофайла: ffmpeg -i 1.mkv -map 0:s:1 sub.srt == Вмонтировать субтитры в видео (здесь map для конкретной звуковой дорожки, поток с субтитрами ни при чем): ffmpeg -i input.mkv -vcodec libx264 -map 0:0 -map 0:1 -vf subtitles=sub.srt "output.mp4" ==================================================================================== === Получить информацию о всех потоках файла (делаю это для выбора нужной аудиодорожки, рассчитывая на сознательность создателя файла, который оставил пометки для языка дорожки): ==================================================================================== # ffprobe -hide_banner -show_streams "1.avi" | grep -e index -e codec_type -e title ==================================================================================== === Перекодировать все файлы в каталоге. Имена файлов могут содержать пробелы: ==================================================================================== # == < /dev/null используется для того, чтобы при пакетной конвертации ffmpeg не останавливался с ошибкой "Enter command: |all