Творческое задание для образовательного проекта (находится в стадии протипирования).

Необходимо исследовать и предложить оптимальный вариант (реализацию) создания набора аудио фрагментов и скриншотов на основе видео файла.

На входе данная программа получает:

- видео файл с одной или несколькими аудио дорожками

- текстовый файл с субтитрами

- аргументы (номер аудио дорожки, audio fadein/fadeout in milliseconds, см. пример)

audioTrack=1

fadeIn=200

fadeOut=200

На выходе:

- аудио фрагменты, записанные в папку (в формате mp3, битрейт такой же к в видео)

- скриншоты, записанные в другую папку (в формате png, разрешение такое же, как у видео)

Предполагаю, что сделать всё можно с помощью вызовов ffmpeg.

Тогда контролирующая программа на Java, написанная вами, должна распарсить субтитры, сделать все необходимые вызовы ffmpeg с нужными параметрами.

Видео для тестирования (Family Guy s1e1, 20min, 173Mb):

https://drive.google.com/file/d/1tRRU51a9kjHC47wE_Vwnl4_1FxF6Wotd/view?usp=sharing

Субтитры:

https://drive.google.com/file/d/1CflWB9nJ_SZKaUhiWf7an5SN4Tv22CTy/view?usp=sharing

Оцените, сколько будет стоить разработка прототипа данной программы.

(Прототип значит: можно не усердствовать в красоте кода, оптимизации, функциональном разнообразии, тесты писать не надо - только если для себя).

Уточнение #1:

Скриншоты берутся из видео для каждого аудио фрагмента. Таймстэмп скриншота вычисляется как середина аудиофрагмента.

screenshotTimestamp = (audioEndTimestamp - audioStartTimetamp) /2Конечная цель - создание аудио комикса для веб. Генерация такого комикса - отдельная история.

Уточнение #2:

Можете использовать ffmpeg-cli-wrapper , если получится решить все поставленные в задании задачи. Ну или 

Runtime.getRuntime().exec(commandLine);

process.waitFor();

Уточнение #3:

Необходимо также добавить fadein/fadeout для аудио фрагментов, чтобы они не звучали рвано. Судя по всему, можно использовать afade фильтр. Пример использования:

ffmpeg -i music.mp3 -af "afade=t=in:st=0:d=0.5" out.mp3

ffmpeg -i music.mp3 -af "afade=t=out:st=5:d=0.5" out.mp3ссылка на другие примеры

Т.е., возможно, придётся несколько раз применить ffmpeg для каждого фрагмента:

  • вырезать
  • fadeIn
  • fadeOut
  • сжатие в mp3
3 года назад
geniot
43 года
16 лет в сервисе
Был
3 года назад

Заявки фрилансеров

Данил
 
22 года
3 года в сервисе
Был
3 года назад
3 года назад
  • Похожие заказы

  • Необходимо помочь в имплементации распознавания цифр на Python для управления действиями робота на складе. Робот должен отвозить 'пачку' к определенной полке в зависимости от распознанного числа. Код уже написан, требуется доработка функционала для выполнения действий. Подробности о коде могут быть предоставлены по запросу.

    Закрыт
    3 года назад
  • Создайте сканер арбитража, который будет использовать данные с coingecko.com для выбора торговых пар с наибольшей процентной разницей. Программа должна отображать самую дешевую и самую дорогую цену в соответствии с заданными условиями.

    Закрыт
    3 года назад
  • Здійснити розробку електронного календаря для бронювання кімнат нарад за допомогою Python. Включає розробку структури предметної області, CI/CD налаштування на GitLab, збереження даних у файл, запуск БД в Docker, REST API, а також графічний інтерфейс. Очікується якісний код та документування процесу.

    Прикладное ПОнет заявок
    Закрыт
    3 года назад
  • $5

    Потрібно вирішити 5 задач з програмування на мові СІ. Задачі можуть бути різного рівня складності, вимоги щодо їх реалізації будуть надані. Очікується якісне та швидке виконання.

    Прикладное ПО1 исполнитель
    Закрыт
    3 года назад
  • Требуется внести изменения в действующее программное обеспечение, написанное на Electron и Node.js. Необходимы навыки работы с HTML, CSS, JavaScript, Vue.js, а также знание PHP и Laravel для бэкенда. Опыт работы с базами данных SQLite и PostgreSQL приветствуется. Знания передачи данных через UART будут плюсом. Техническое задание в прикрепленном файле.

    Закрыт
    3 года назад
  • $5

    Требуется решить 5 простых задач на языке программирования 'С'. Задачи предназначены для начинающих, которые хотят улучшить свои навыки программирования. Подходят для практики и освоения основ языка.

    Закрыт
    3 года назад
  • $70

    Необходимо доработать клиент-серверное приложение, добавив интерфейс для контроля задач резервирования. Административная часть должна соединяться с сервером для получения и управления списком задач. Также требуется разработать функционал для сервера и изменить клиентскую часть для получения данных от сервера. Подробное описание архитектуры приложения должно быть включено в отчет.

    Прикладное ПО1 исполнитель
    Завершен
    3 года назад
  • Требуется специалист по VBA для устранения проблемы в рабочей программе Excel, которая не обрабатывает один из файлов данных. Необходимо найти баг в коде и исправить его до среды. Знания VBA обязательны.

    Закрыт
    3 года назад
  • Требуется разработка программы на C++ с учетом прикладного назначения. Исполнитель может выбрать среду разработки на своё усмотрение. Важна ясная реализация функционала и удобство использования.

    Закрыт
    3 года назад