Я зіткнувся з проблемою отримання якихось дивних і неправильних метаданих з деяких відеофайлів, з якими я працював, і мені не вдалося знайти шаблон або будь-який тип обробки, використовуючи код та інструменти, такі як ffmpeg, mp4box, ffprobe, mediainfo, mplayer, щоб отримати реальну тривалість відео.
Визначення реальної тривалості відео було вимогою до проекту, над яким я працював, і єдиний спосіб, коли я вважаю, що це завжди правильно, - це перекодувати відеофайл за допомогою ffmpeg та змусити закодовані файли ігнорувати метадані оригінального файлу, наприклад:
ffmpeg -i INPUT_FILENAME -acodec copy -vcodec copy -map_metadata -1 OUTPUT_FILENAME"
(Це може працювати швидше, ніж ви очікували. Я здивувався, за тип вмісту та середовище, яке я використовував, середній час становив 2 секунди)
... а потім отримати тривалість використання інструменту на ваш вибір. Мені подобається mediainfo, btw: - "mediainfo FILE --Inform =" Відео;% Тривалість% "дає тривалість у мілісекундах.