- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ffmpeg 使用过滤器 fps 从视频中提取图像(缩略图),以便我每 0.5 秒获得一张图像。这是我使用的命令:
ffmpeg -i video.mp4 -f image2 -filter:v fps=1/0.5 -y out_%3d.png
ffmpeg -i video.mp4 \
-vf "fps=fps=1/5,drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: text='%{pts\:hms}': x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" \
out_with_timestamp_%03d.png
fprobe -hide_banner \
-i "movie=video.mp4,fps=fps=1/0.5[out0]" \
-f lavfi -show_frames -show_entries frame=pkt_pts_time -of csv=p=0
最佳答案
ffmpeg 和 ffprobe 确实产生相同的时间戳。
但是,您想知道源时间戳,之后您必须对其应用 fps 过滤器。 fps 过滤器的作用是从源流中删除和/或复制帧以生成恒定的帧速率输出。它还以给定的速率重新生成平滑的时间戳。所以你必须更早地绘制文本以印记源 TS。
这是将源 TS 归档的粗略解决方法。
跑,
ffmpeg -i video.mp4 -vf "showinfo,fps=fps=1/5,showinfo" out_%03d.png 2> showinfo.log
[Parsed_showinfo_0 @ 000000000051fe40] n: 56 pts: 28672 pts_time:2.33333 pos: 159155 fmt:yuv420p sar:0/1 s:1280x720 i:P iskey:0 type:P checksum:E16BA92B plane_checksum:[DDD39061 7EA5EE0E B9642AAD] mean:[188 113 134 ] stdev:[35.2 24.8 6.3 ]
[Parsed_showinfo_0 @ 000000000051fe40] n: 57 pts: 29184 pts_time:2.375 pos: 161402 fmt:yuv420p sar:0/1 s:1280x720 i:P iskey:0 type:P checksum:A363FB5E plane_checksum:[9BBF72F4 87165D47 ADB32B23] mean:[188 113 134 ] stdev:[35.3 24.7 6.3 ]
[Parsed_showinfo_0 @ 000000000051fe40] n: 58 pts: 29696 pts_time:2.41667 pos: 173158 fmt:yuv420p sar:0/1 s:1280x720 i:P iskey:0 type:B checksum:5EE879C4 plane_checksum:[55EA6029 A578E90A 4F463082] mean:[188 113 134 ] stdev:[35.3 24.6 6.3 ]
[Parsed_showinfo_0 @ 000000000051fe40] n: 59 pts: 30208 pts_time:2.45833 pos: 170104 fmt:yuv420p sar:0/1 s:1280x720 i:P iskey:0 type:B checksum:EE8A0C3A plane_checksum:[A90276D4 620C6744 F5012E13] mean:[188 114 134 ] stdev:[35.4 24.5 6.3 ]
[Parsed_showinfo_0 @ 000000000051fe40] n: 60 pts: 30720 pts_time:2.5 pos: 175138 fmt:yuv420p sar:0/1 s:1280x720 i:P iskey:0 type:B checksum:8E112769 plane_checksum:[9A02FB68 1FF2EC88 1E573F5B] mean:[188 114 134 ] stdev:[35.5 24.4 6.3 ]
[Parsed_showinfo_2 @ 0000000004947540] n: 0 pts: 0 pts_time:0 pos: 170104 fmt:yuv420p sar:0/1 s:1280x720 i:P iskey:0 type:B checksum:EE8A0C3A plane_checksum:[A90276D4 620C6744 F5012E13] mean:[188 114 134 ] stdev:[35.4 24.5 6.3 ]
[Parsed_showinfo_0 @ 000000000051fe40] n: 61 pts: 31232 pts_time:2.54167 pos: 164026 fmt:yuv420p sar:0/1 s:1280x720 i:P iskey:0 type:P checksum:BB465233 plane_checksum:[EAEAE802 57E310BE 62275964] mean:[187 114 134 ] stdev:[35.7 24.4 6.3 ]
[Parsed_showinfo_0 @ 000000000051fe40] n: 62 pts: 31744 pts_time:2.58333 pos: 187333 fmt:yuv420p sar:0/1 s:1280x720 i:P iskey:0 type:B checksum:9D4E3B24 plane_checksum:[D5D19959 05A4FDBE 88B7A3EF] mean:[187 114 134 ] stdev:[35.8 24.4 6.3 ]
Parsed_showinfo_2
行,您必须提取
Parsed_showinfo_0
其
pos
的行是一样的。
pts_time
在
Parsed_showinfo_0
是你的源TS。
关于video - 使用 fps 过滤器的 ffmpeg 时间戳信息与 ffprobe 不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51325158/
我必须开发一个使用 Pydub 来编辑 mp3 文件的 Alexa Skill。 Pydub 需要 ffmpeg,所以我已将其添加到 requirements.txt 但现在,当我尝试运行我的技能时,
运行代码片段时,出现标题中的错误。 我已经重新安装了软件包pydub,以及pip3 install ffprobe。 from pydub.playback import play f
我有这个命令 ffprobe -show_frames -select_streams v -print_format json -i c:\test.mpg 但是,它会打印出所有帧信息。无论如何我
我正在尝试使用 FFProbe 提取视频 (.MP4) 的持续时间,并要求将结果输出到文件中。当我使用命令提示符输入文件时,FFProbe 工作完美并创建包含持续时间信息的文件,但是,当我在我的 VB
当我使用 ffmpeg 时,我会这样使用它: ./ffmpeg -ss 00:30:00 -i inputvideo.mp4 -t 00:00:20 -c:v copy -c:a copy outpu
我正在尝试从 ffprobe 返回特定值: ffprobe -v error -select_streams V:0 -show_entries stream=index,width,height,s
我正在使用 mkvmerge将 mp4 CFR 视频与包含 VFR 时间戳的文本文件相结合。使用的命令是 mkvmerge --timestamps 0:timestamps.txt input_vi
我一直在使用 ffprobe 从视频流中读取数据包进行分析。然而,它的速度非常缓慢。阅读 30 分钟 720p 视频大约需要 8 分钟。 我目前正在使用以下命令: ffprobe.exe -i vid
我有一个 oog 文件(它是由 pbx Asterisk 记录的两个音频流中的 sox 混合的),我正在尝试使用 ffprobe 获取文件信息。 当我使用类似的东西时 cat %filename%.o
我使用此代码通过 ffprobe 提取视频信息: ffprobe -show_streams -of json -v quiet -i input.mp4 所有流的信息都出现在输出中,而我只需要 v:
我试图了解 ffprobe 的行为关于对格式标签使用大写或小写约定。 以下是重现的步骤。从现有 MP4 电影创建 MP4、AVI 和 MKV 容器: $ ffmpeg -y -i input.mp4
我尝试了许多使用 FFProbe 获取视频编解码器的不同示例,including this one除了偶尔的 [/STREAM] 之外,无法获得任何输出。 这是我目前正在尝试的 $codec = ex
对于我的一个脚本,我需要读出一个 wav 文件的位深度。 ffprobe -v error -show_entries format=bits_per_sample -of default=nopri
我在使用 ffprobe 语法时遇到问题,获取打印格式以输出默认值而不使用任何键。有一个 nokey 选项,所以我传入这样的东西 ffprobe -print_format 默认无 key 但我什么也
我正在尝试使用 FFprobe 来测试流媒体链接是否处于事件状态。 例如,这是一个有效的流媒体链接: ffprobe -loglevel quiet -show_streams rtmp://Lrmh
使用此 ffprobe 将 MP4 转换为类似于视频的输出格式的命令是什么? : ffprobe version N-82151-g1e660fe Copyright (c) 2007-2016 th
我目前正在运行以下命令,它主要提供了我需要的东西,但我也想让它包含文件名。 for %%A IN (%VAR0%\*.wav) DO "C:\program files (x86)\ffmpeg\bi
我正在使用 ffprobe 在具有可用硬件加速解码器的 AWS VT1 上使用以下命令从视频文件中提取信息 ffprobe -of json -show_streams -show_frames -s
我想安排一个作业脚本来检查直播流是否还活着,使用“ffprobe”命令。这样我就可以更改那些已经死掉的 Steam 的数据库状态。 我尝试了命令: ffprobe -v quiet -print_fo
我在 马克并且正在开发一个项目,我的程序应该将 .mp3 文件转换为 .wav 文件,然后从该文件中获取文本(基本语音识别)。为了将 .mp3 文件转换为 .wav 文件,我使用的是 ffmpeg 库
我是一名优秀的程序员,十分优秀!