#ffmpeg #video-processing #h.264 #video-capture #mkv
Вопрос:
Допустим,у нас есть 2 видеофайла (X, Y) в одном формате, кодеке и размерах.
X-это более длинное видео с размером в несколько гигабайт. Y-короткое 10-секундное видео. Я хочу добавить Y в конец X, не создавая еще одну копию X (потому что она большая по размеру)
Мне приходится повторять этот процесс в течение нескольких часов, когда одно за другим появляется множество 10-секундных видеороликов.
В настоящее время я объединяю файлы с помощью ffmpeg.
ffmpeg -f concat -safe 0 -i chunk.list -c copy final-video.mkv
chunk.list
содержит имена файлов X и несколько 10-секундных видео. После этого X будет удален и заменен на final-video.mkv
. Затем повторите.
Но для этого требуется вдвое больший объем памяти и операций ввода-вывода. Как это сделать, не создавая дубликатов?
Это нормально-дублировать эти 10-секундные видео. Но дублирование этого большего файла X
действительно снижает производительность.
Дополнительная информация :
Все эти видео будут закодированы с помощью H264, H265, VP8 или VP9 и будут содержаться в формате MKV или MP4, как они есть codec copy friendly
. Будет использоваться только один из этих форматов.
Это для специального регистратора экрана, который должен работать на облачных и упреждающих удаленных рабочих столах (Linux). Интерфейс браузера HTML/JS захватывает экран и отправляет на серверную часть (Golang) в виде фрагментов через HTTP. Сетевой маршрут не определен и ненадежен, так как между внешним и внутренним интерфейсом могут быть брандмауэры/прокси-серверы. Поэтому мы не можем использовать такие соединения, как UDP. Поэтому единственный вариант-отправлять фрагменты видео по протоколу HTTP.
Это ОКАМЕНЕЛОСТЬ на https://github.com/HasinduLanka/screencorder
Комментарии:
1. а) ffmpeg не редактирует файлы на месте, б) даже если бы это было так, файлы MP4 и MKV не подходят для редактирования. Вам понадобится место для временного файла.
2. Существует ли «удобный для добавления» видеоформат?
3. MPEG-TS, но вам все равно понадобится временный файл.