Мне нужна была библиотека для выполнения основных функций, таких как длина, размер и т. Д., Для видеофайла (я предполагаю по метаданным или тегам), поэтому я выбрал ffmpeg . Допустимые форматы видео - это прежде всего те, которые преобладают в файлах фильмов, а именно. wmv, wmvhd, avi, mpeg, mpeg-4 и т. Д. Если можете, пожалуйста, помогите мне с методами, которые нужно использовать для определения длительности видеофайла . Я использую платформу Linux.
используемый эта функция его работа:
extern "C"
JNIEXPORT jint JNICALL
Java_com_ffmpegjni_videoprocessinglibrary_VideoProcessing_getDuration(JNIEnv *env,
jobject instance,
jstring input_) {
av_register_all();
AVFormatContext *pFormatCtx = NULL;
if (avformat_open_input(&pFormatCtx, jStr2str(env, input_), NULL, NULL) < 0) {
throwException(env, "Could not open input file");
return 0;
}
if (avformat_find_stream_info(pFormatCtx, NULL) < 0) {
throwException(env, "Failed to retrieve input stream information");
return 0;
}
int64_t duration = pFormatCtx->duration;
avformat_close_input(&pFormatCtx);
avformat_free_context(pFormatCtx);
return (jint) (duration / AV_TIME_BASE);
}
, Когда я использую (jint) (продолжительность / AV_TIME_BASE) эта видео продолжительность понимает превратно.