Показать полную графическую версию : Как разбить mkv-файл точно
lost8923142
25-03-2022, 14:19
Здравствуйте.
Возможно ли разбить mkv-файл так, чтобы совокупность получившихся частей была того же размера и продолжительности, что и исходный файл.
Пока что имеет дело с этим.
Исходный файл:
https://i116.fastpic.org/big/2022/0325/d1/97fb76df0c853b6f0a595264a217e5d1.jpg (https://fastpic.org/view/116/2022/0325/97fb76df0c853b6f0a595264a217e5d1.jpg.html)
Совокупность 3-х файлов:
https://i116.fastpic.org/big/2022/0325/ab/e87700f1a7b6b10aaa1fa88729a6d7ab.jpg (https://fastpic.org/view/116/2022/0325/e87700f1a7b6b10aaa1fa88729a6d7ab.jpg.html)
вероятно, там ключевой кадр был. И кусок сцены от предыдущего ключевого кадра- просто теряется.
Отрезать можно и точно, ффмпегом, например.
Но чтоб эта часть не пропала, надо полностью перекодировать ролик. Да, теряя качество, само собой.
Если это вас не пугает, то пожалст -
ffmpeg -i input.mkv -t 00:15:00 out1.mkv -ss 00:15:00 -t 00:15:00 out2.mkv
дополнительно настройки качества, кодеков, т.д. - добавлять по желанию и вкусу :)
lost8923142
26-03-2022, 00:30
А без перекодирования можно?
нет.
русским по белому же написал:
ключевой кадр. Он в ДРУГОМ видео. То есть, всё, что было до следующего, - без перекодировки пропадает. И это самый лучший вариант.
В других - просто отказ воспроизведения видео.
mralexov
19-07-2022, 01:22
lost8923142,
Почти.
Для разбивки видео нужно делать это по ключевым кадрам. Это можно сделать как раз программой Avidemux которой Вы пользуетесь.
В практическом тесте я взял запись в mkv контейнере avc / aac, 30FPS (запись из программы OBS Studio).
В Avidemux есть навигация по ключевым кадрам вперед-назад (стрелки вверх-вниз). Я остановился на таком кадре. Сначала вырезал всё что было после него, сохранил. Потом сделал отмену, вырезал всё что было до него, сохранил, и у меня получилось две части по размеру примерно равные исходному.
Точного совпадения размеров до байта я не ожидаю, потому что в N файлах будет N заголовков, а исходному файлу заголовок нужен один.
Резка по ключевым кадрам скорее всего не будет точно 15 минут.
У меня.
Исходный файл: 1:01:56.133
Первая часть: 30:54.033
Вторая часть: 31:02.099
АХЪ. Потеряна аж одна сотая секунды длины видео. Учитывая что частота -- 30 кадров в секунду, полагаю что такую погрешность можно пережить.
lost8923142
20-11-2022, 10:43
Резка по ключевым кадрам...
Потеряна аж одна сотая секунды длины »
Странно, я тоже по ключевым кадрам резал. Погрешность получилась 1.76 секунды.
кстати, а в ffmpeg-e есть возможность резки по ключевым кадрам?
имею в виду, чтоб он сам находил i-frame, ближайший к указанной секунде, и резал по нему.
Цель - чтоб не требовалась перекодировка для корректного соответствия аудиодорожке и прочих вещей.
https://superuser.com/questions/1076283/ffmpeg-how-can-i-cut-starting-precisely-from-a-keyframe-while-codec-copying - читал.
более интересно это -
https://superuser.com/questions/536987/ffmpeg-command-to-find-key-frame-closest-to-3rd-minute
но тут найденную картинку просто сохраняют, а не находят её таймстамп и не передают его в значение трима
DJ Mogarych
19-01-2023, 10:57
Using -ss as input option together with -c:v copy might not be accurate since ffmpeg is forced to only use/split on i-frames.
https://trac.ffmpeg.org/wiki/Seeking
правильно ли понимаю, что надо юзать
Previous behavior (seeking only to the nearest preceding keyframe, even if not precisely accurate) can be restored with the -noaccurate_seek option.
ака
ffmpeg -ss 06 -i 160.mp4 -noaccurate_seek -t 280 -c copy output.mp4
?
повторюсь, мне не нужно точно мгновение в мгновение, мне нужно от первого ключевого кадра, чтоб после обрезки не глючило изображение и не сползала на эти же секунды в сторону звуковая дорожка.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC