Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Цифровые технологии » Видео и аудио: обработка и кодирование » Создание скрипта конвертации видео FFmpeg

Ответить
Настройки темы
Создание скрипта конвертации видео FFmpeg

Старожил


Сообщения: 219
Благодарности: 3

Профиль | Отправить PM | Цитировать


Здравствуйте!
Помогите написать скрипт для конвертации видео через утилиту FFmpeg
Требования:
1. Скрипт написан в формате cmd/bat
2. Скрипт обрабатывает содержимое каталога и всех подкаталогов, где он лежит
3. Установка переменных через SET:
3.1. расположение исполняемого файла ffmpeg.exe
3.2. указание желаемого битрейда видео
3.3. указание желаемого пресета конвертации (к примеру, ultrafast)
3.4. указание желаемого разрешения при масштабировании (описано далее)
3.5. указание форматов файлов, которые нужно конвертировать

4. Видео:
Скрипт ищет файлы (п3.5) и конвертирует в формат MP4, кодек h264 с переменным битрейтом (п.3.2) в 2 прохода. Распознает разрешение видео и если по большей стороне оно больше чем указано в п3.4, масштабирует до указаного с сохранением пропорций. К примеру, указано 1280, а видео 1080х1920 (вертикальное), тогда видео будет сконвертировано в 720х1280.

5. Аудио:
Аудио будет сконвертировано в AC-3. Каналы - как у исходного, частота дискретизации - как у исходного, битрейд аудио: если превышает допустимый битрейд для AC-3 640kbit/s, конвертировать в этот битрейд, иначе, оставить как в оригинале.

Благодарю!

Отправлено: 14:30, 11-07-2024

 

Ветеран


Сообщения: 2661
Благодарности: 250

Профиль | Отправить PM | Цитировать


это на собеседование тестовая задача чтоль?)

Отправлено: 17:16, 11-07-2024 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6558
Благодарности: 1496

Профиль | Отправить PM | Цитировать


Bio_Hazard, на каком этапе реализации у вас возникли затруднения?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 17:57, 11-07-2024 | #3


Старожил


Сообщения: 219
Благодарности: 3

Профиль | Отправить PM | Цитировать


bredych, та нет. Для личного использования.
DJ Mogarych, на этапе, когда я замучил чат GPT, но он рабочего варианта не скинул. Было пару версий скрипта, но там либо масштабирование не работало, либо не кодировалось вообще.

Отправлено: 18:07, 11-07-2024 | #4


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6558
Благодарности: 1496

Профиль | Отправить PM | Цитировать


Это задача не столько сложная, сколько требующая много времени на реализацию из-за большого количества требований.
Почитайте пару статей по ffmpeg, через несколько дней уже сможете реализовать большинство пунктов.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:08, 11-07-2024 | #5


Старожил


Сообщения: 219
Благодарности: 3

Профиль | Отправить PM | Цитировать


UPD
Добил обработку видео, осталось добавить аудио
Скрытый текст
Код: Выделить весь код
@echo off
color 0A
chcp 65001
setlocal enabledelayedexpansion

SET "FFMPEG_PATH=ffmpeg.exe"

SET "FORMATS=*.mp4 *.avi *.mkv *.mov *.flv *.wmv"

SET "VIDEO_BITRATE=8000k"

:: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo
SET "PRESET=ultrafast"

SET "MAX_SIZE=1920"

if not exist "%FFMPEG_PATH%" (
	echo FFmpeg не найден!
	pause
	exit /b
)

for %%f in (%FORMATS%) do (
	set "input=%%f"
	set "output_temp=%%~nf_temp.mp4"
	set "output_final=%%~nf_converted.mp4"

	for /f "tokens=1,2 delims=x " %%a in ('%ffmpeg_path% -i "%%f" 2^>^&1') do (
		set "width=%%a"
		set "height=%%b"
	)

	if !width! gtr !height! (
		set "scale_width=%MAX_SIZE%"
		set "scale_height=-1"
	) else (
		set "scale_width=-1"
		set "scale_height=%MAX_SIZE%"
	)

	"%FFMPEG_PATH%" -i "!input!" -vf "scale=!scale_width!:!scale_height!" -c:v libx264 -b:v !VIDEO_BITRATE! -c:a copy -preset !PRESET! -pass 1 -an -f mp4 NUL
	"%FFMPEG_PATH%" -i "!input!" -vf "scale=!scale_width!:!scale_height!" -c:v libx264 -b:v !VIDEO_BITRATE! -c:a copy -preset !PRESET! -pass 2 "!output_temp!"

	move /Y "!output_temp!" "!output_final!"
)

endlocal

Последний раз редактировалось Bio_Hazard, 15-07-2024 в 09:35.


Отправлено: 10:04, 12-07-2024 | #6



Компьютерный форум OSzone.net » Цифровые технологии » Видео и аудио: обработка и кодирование » Создание скрипта конвертации видео FFmpeg

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
ffmpeg добавление звука в видео с оффсетом bredych Видео и аудио: обработка и кодирование 4 18-07-2022 16:21
FFMPEG - Захват видео с веб-камеры в Ubuntu aimaim Видео и аудио: обработка и кодирование 0 14-03-2016 15:18
Возможно ли обрезать несколько видео файлов одним кликом, без конвертации? Amiranchik Видео и аудио: обработка и кодирование 8 03-10-2015 07:20
VBS/WSH/JS - создание скрипта для создание текстовика с именем учетки velsati Скриптовые языки администрирования Windows 0 01-04-2013 16:55
Резка и склейка видео без конвертации optima22 Видео и аудио: обработка и кодирование 18 28-01-2008 14:03




 
Переход