我有以下代码将视频文件的时长存储在一个名为duration的变量中:
for /f %%i in ('ffprobe -select_streams v:0 -show_entries stream^=duration -of default^=noprint_wrappers^=1:nokey^=1 input.avi') do set duration=%%i
但是,当我尝试获取.webm文件的持续时间时,就会得到N / A。我在这里How to determine webm duration using ffprobe中使用了答案,这使我能够在使用ffprobe时查看webm的持续时间。但是由于某种原因,我可以在ffprobe的输出中看到持续时间,但是我无法将其存储在变量中。
请帮助我。谢谢
以下是命令和输出:
命令:
for /f %%i in ('ffprobe -select_streams v:0 -show_entries stream^=duration -of default^=noprint_wrappers^=1:nokey^=1 webm_copy.webm') do set duration=%%i
echo %duration%
输出:
D:\SOFTWARE\ffmpeg\bin\test\go>for /F %i in ('ffprobe -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 webm_copy.webm') do set duration=%i
ffprobe version N-80066-g566be4f Copyright (c) 2007-2016 the FFmpeg developers
built with gcc 5.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --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-decklink --enable-zlib
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 43.100 / 57. 43.100
libavformat 57. 37.100 / 57. 37.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 46.100 / 6. 46.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, matroska,webm, from 'webm_copy.webm':
Metadata:
encoder : Lavf57.37.100
Duration: 00:01:31.44, start: 0.000000, bitrate: 278 kb/s
Stream #0:0: Video: vp8, yuv420p, 480x360, SAR 1:1 DAR 4:3, 29.97 fps, 29.97 tbr, 1k tbn (default)
Stream #0:1: Audio: vorbis, 44100 Hz, stereo, fltp (default)
D:\SOFTWARE\ffmpeg\bin\test\go>set duration=N/A
D:\SOFTWARE\ffmpeg\bin\test\go>echo N/A
N/A
答案 0 :(得分:0)
您可以检索存储在Matroska和Webm容器中的持续时间。将-show_entries stream=duration
更改为-show_entries format=duration
。
如果仅希望输出持续时间值,请参见FFmpeg Wiki: FFprobe中的示例所示的-loglevel
/ -v
和-of
选项。