1

Мой вопрос, я думаю, довольно прост ...

Иногда мне нравится скачивать большие файлы MKV с моего веб-сервера и воспроизводить их во время загрузки. Однако, если я сделаю это для файлов MKV, которые я транскодировал, часто файл будет показывать, что он намного короче, чем есть на самом деле, и после того, как он дойдет до конца, он просто продолжит воспроизведение и покажет неверное время ... например он отобразит 2:50/2:50, но продолжит играть, однако, если я попытаюсь вернуться назад с помощью клавиш со стрелками, проигрыватель либо вылетит, либо пропустит назад к началу файла.

Итак, как я могу переместить все метаданные в начало файла во время кодирования, чтобы проигрыватель знал, как долго этот файл не имеет всего этого? Вы можете сделать это с помощью формата mp4 с помощью -movflags faststart, но как это сделать для mkv?

Извините, если об этом уже спрашивали и отвечали в другом месте, я не мог придумать лучшие ключевые слова, чем те, которые я использовал, и те, которые я использовал, не дали результатов.

1 ответ1

3

Фонд Matroska предлагает инструмент mkclean, который выполняет задачу, аналогичную той, которую qt-faststart выполняет для MOV/MP4.

Синтаксис:

mkclean in.mkv out.mkv

Это восстановит индекс сигналов. Чтобы сохранить оригинальные реплики,

mkclean --keep-cues in.mkv out.mkv

FFmpeg также может сделать это, с некоторой догадкой, со стороны пользователя.

ffmpeg -i in.mkv -c copy -reserve_index_space 50k out.mkv 

где значение reserve_index_space в байтах - это размер, необходимый для индекса. 50k Кбайт - это рекомендуемый размер для 1 часа носителя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .