Я хочу, щоб мій веб-сайт дозволяв користувачам точно створювати власні кліпи з наданого мені джерельного відео.
У мене є вихідний відеофайл, який я спершу хочу перетворити на щось, що підходить для веб-сайту:
Input #0, matroska,webm, from 'source.mkv':
Duration: 00:28:18.57, start: 0.000000, bitrate: 10183 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 48 tbc (default)
Stream #0:1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s (default)
Я використовую ffmpeg, щоб перетворити його так:
ffmpeg -i source.mkv -c:v libx264 -c:a aac -strict experimental -vf scale="960:-1" source.mp4
Переглядаючи це відео назад, він достатньо якісний і достатньо невеликий розмір файлу для моїх потреб та завантаження / відтворення на моєму веб-сайті.
У мене є веб-сторінка, яка дозволяє користувачам вибрати стартову та кінцеву точку цього відео - і створити кліп. Ось приклад команди ffmpeg, яку я використовую для цього:
-ss 577.920 -i source.mp4 -t 011.980 -codec:v copy -codec:a copy -vf scale="960:-1" clip1.mp4
Проблема в тому, що кліп не завжди є достатньо точним за часом. Зазвичай звук досить точний, але відео зупиняється на півсекунди рано чи щось.
Чи є якийсь спосіб зробити це точним і синхронізованим, скажімо, 0,2 секунди?
EDIT: Додавання -force_key_frames 00:00:00.2
не допомогло.
EDIT: Я змінив відсікання на використання -c:v libx264 -c:a aac -strict experimental
замість -codec:v copy -codec:a copy
хороших (ish) результатів.
Файл може відтворюватись без проблем, але коли я завантажую його у свій елемент html5-відео та відтворюю його - остання частина відео (звук прекрасна) застигає. Остання частина, яка замерзає, довша секунди.
Чи варто спробувати це з іншим відео кодером? Яка найкраща альтернатива libx264? Маючи на увазі, я, мабуть, хочу, щоб це було на загальнодоступному веб-сайті.
Але не витримуйте чи не факт, що він грає точно без проблем з таким програвачем, як MPC або Windows Media Player, чи припускає це проблема з Google Chrome або з елементами відео HTML? Або я використовую непідтримуване кодування чи щось таке?