Ответы Mail.ru: Delphi. Как получить длительность файла MP4 (без использования TMediaPlayer)?

Для получения длительности файла MP4 в Delphi без использования компонента TMediaPlayer, вы можете использовать сторонние библиотеки, такие как FFmpeg. FFmpeg – это мощный инструмент, который позволяет работать с видео и аудио файлами в различных форматах. Вот примерный подход к решению вашей задачи с использованием FFmpeg:

1. **Установка FFmpeg**: Сначала необходимо убедиться, что у вас установлены библиотеки FFmpeg. Вы можете скачать их с официального сайта FFmpeg и добавить пути к исполняемым файлам в переменную среды PATH.

2. **Интеграция с Delphi**: Для вызова функций FFmpeg из Delphi, вам потребуется обертка или набор компонентов, которые позволяют работать с этой библиотекой. Можно использовать, например, DelphiFFmpeg.

3. **Получение длительности файла**: Вы можете выполнить вызов FFmpeg с параметрами для получения информации о файле. Пример команды для получения длительности в секундах:

 function GetVideoDuration(const FileName: string): Integer; 
var 
  Output: string; 
begin 
  // Запуск FFmpeg с параметрами для получения длительности 
  RunCommand('ffmpeg', ['-i', FileName, '-show_entries', 'format=duration', '-v', 'quiet', '-of', 'csv="p=0"'], Output); 
  // Преобразование вывода в число 
  Result := Round(StrToFloat(Output)); 
end; 
 

В этом коде `RunCommand` — это функция, которую вам нужно реализовать для выполнения внешних команд. `Output` будет содержать длительность видео в секундах.

Этот метод требует наличия FFmpeg на машине, где выполняется ваше приложение Delphi, и некоторой работы по интеграции, но он обеспечивает гибкость и мощные возможности для работы с медиафайлами.