Мой скрипт ffProbe работает только с файлами MKV.

Только вчера узнал о ffprobe, и после долгих поисков я смог собрать BAT-файл командной строки, чтобы получить нужную мне метаинформацию. Потом оказывается, что это работает только примерно в половине случаев. После некоторых экспериментов кажется, что он работает только с файлами MKV.

Я не знаю, происходит ли здесь ошибка или моя командная строка нуждается в улучшении. Возможно, ffProbe работает только с определенными файлами, но я предполагал, что он будет работать с большинством популярных форматов видео.

Я использую AutoHotKey для создания BAT-файла, который затем запускаю. Так что нам действительно нужно просто посмотреть на файл BAT.

Вот мой BAT-скрипт...

C:\PROGRA~1\ffmpeg\bin\ffprobe.exe -pretty -select_streams v \
-show_entries \
format=filename,size,duration,bit_rate:stream=codec_name,codec_type,bit_rate,width,height,display_aspect_ratio \
-of ini \
"S:\myTVshows\SampleName - S01E01 - SampleTitle.mp4"

После этого консоль выводит только #ffprobe outputзаголовок, а затем зависает. Если он работает с файлом mkv, то он мгновенно выводит все данные, которые я хочу, как и ожидалось.

Обновление: когда я добавляю -reportв качестве параметра, я, конечно, получаю файл журнала отчета... но я также получаю желаемый результат (а не зависание, как раньше). Интересно, значит ли это, что это ошибка.

Ноты

  • Я уменьшил путь для ffprobe до формата 8.3, чтобы мне не пришлось беспокоиться о кавычках вокруг этой части.
  • Я работаю с очень актуальной установкой ffmpeg/ffprobe (ffmpeg-20170404-1229007-win64-static).

Ниже вывод консоли...

ffprobe version N-85266-g1229007 Copyright (c) 2007-2017 the FFmpeg developers
built with gcc 6.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --e
nable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --
enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-li
bfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug -
-enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enabl
e-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-li
bsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolam
e --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
--enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable
-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
libavutil      55. 59.100 / 55. 59.100
libavcodec     57. 90.100 / 57. 90.100
libavformat    57. 72.100 / 57. 72.100
libavdevice    57.  7.100 / 57.  7.100
libavfilter     6. 83.100 /  6. 83.100
libswscale      4.  7.100 /  4.  7.100
libswresample   2.  8.100 /  2.  8.100
libpostproc    54.  6.100 / 54.  6.100
# ffprobe output

Ссылка на файл журнала при добавлении параметра «-report»

Запустите команду вручную на MP4 и покажите вывод консоли.
Выполнено. Надеюсь, это поможет!
Добавить - reportв команду и запустить. Поделитесь файлом отчета.
Хорошо. Произошли две вещи. 1) я получил файл журнала, и 2) я действительно получил результат, который хотел, а не зависание. И спасибо за помощь! Вот журнал (который также есть в посте)... Ссылка на файл журнала, созданный при -reportдобавлении
Это ошибка, которая задерживает вывод ffprobe в зависимости от продолжительности MP4. Похоже, он был представлен вместе с API декодирования.
Что ж, конечно, приятно получить ответ. Любые обходные пути, о которых вы знаете? Или какой-то другой метод, который предоставит мне эту основную информацию о видео?
Используйте более старую версию, скажем, 2 недели или больше. Mediainfo также предоставит некоторую информацию.
Старая версия работала нормально. Спасибо! Не могли бы вы оставить свои комментарии ниже в качестве ответа, и я отмечу их, чтобы вы получили признание?

Ответы (1)

После реализации нового API декодирования считывание ffprobe для файлов MP4 занимает намного больше времени для печати и зависит от продолжительности видео. Перейдите на версию до апреля 2017 года.

Да. Я переключился на 3.2.4, и он мгновенно дал результаты! Спасибо!