gpt4 book ai didi

video - 为什么ffmpeg输出以0001而不是0000开头的帧?

转载 作者:行者123 更新时间:2023-12-04 23:05:53 27 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。


2年前关闭。







Improve this question




我正在使用 ffmpeg 从视频中提取帧。一切正常,但有些奇怪:输出的编号总是以 0001 而不是 0000 开头。下面是一个最小的工作示例,来自控制台的输出和生成的帧的图片。我在 Win10 上使用 windows shell。

ffmpeg -i P1390752.MP4 -vframes 4 frame%%04d.png

控制台输出:
C:\Users\xxxx>ffmpeg -i P1390752.MP4 -vframes 4 frame%04d.png
ffmpeg version git-2020-01-15-0dc0837 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9.2.1 (GCC) 20200111
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
libavutil 56. 38.100 / 56. 38.100
libavcodec 58. 65.103 / 58. 65.103
libavformat 58. 35.102 / 58. 35.102
libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 71.100 / 7. 71.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002341f489e40] st: 0 edit list: 1 Missing key frame while searching for timestamp: 3600
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002341f489e40] st: 0 edit list 1 Cannot find an index entry before timestamp: 3600.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'P1390752.MP4':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp42avc1
creation_time : 2020-01-29T13:35:55.000000Z
Duration: 00:00:08.16, start: 0.000000, bitrate: 27084 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 26830 kb/s, 50 fps, 50 tbr, 180k tbn, 100 tbc (default)
Metadata:
creation_time : 2020-01-29T13:35:55.000000Z
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 124 kb/s (default)
Metadata:
creation_time : 2020-01-29T13:35:55.000000Z
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> png (native))
Press [q] to stop, [?] for help
Output #0, image2, to 'frame%04d.png':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp42avc1
encoder : Lavf58.35.102
Stream #0:0(und): Video: png, rgb24, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 50 fps, 50 tbn, 50 tbc (default)
Metadata:
creation_time : 2020-01-29T13:35:55.000000Z
encoder : Lavc58.65.103 png
frame= 4 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.08 bitrate=N/A speed=0.0922x
video:5622kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

到目前为止我尝试了什么:
1)我将输出限制为 4 帧,否则需要很长时间。但是当我删除帧数并提取整个视频时,问题仍然存在。当使用带有 -ss 和持续时间的起点时,问题仍然存在。
2) 当我使用 jpg 作为输出时,我收到一些关于已弃用像素格式的警告,但编号问题仍然存在。

我无法摆脱关于关键帧的前两个警告,也许这是相关的?

最佳答案

这恰好是帧序列输出的默认起始索引。您可以通过添加 -start_number 0 来覆盖它.

关于video - 为什么ffmpeg输出以0001而不是0000开头的帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60044089/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com