我尝试使用以下命令使用视频的开始和结束时间剪切视频
通过使用上述命令,我想将视频从 00:00:03 剪切到 00:00:08。但它不是在这些时间之间剪切视频,而是在前 11 秒剪切视频。谁能帮我解决这个问题?
编辑1:
我尝试使用 mark4o 建议的以下命令进行剪切
但它显示了以下错误。
编码器“aac”是实验性的,但实验性编解码器未启用
所以我将 -strict -2 添加到命令中,即
现在它工作正常。
tennisliveranking.com,Follow your favorite tennis players’ rankings live!
tennisliveranking.com,Instant updates on ATP, WTA, and ITF rankings.
尝试使用这个。这是我发现的最快和最好的 ffmpeg 方式:
此命令可在几秒钟内修剪您的视频!
命令解释:
-i:指定输入文件。在这种情况下,它是 (input.mp4)。 -ss:与-i一起使用,在输入文件(input.mp4)中寻找定位。 00:01:00:这是您修剪的视频开始的时间。 -to:指定从开始 (00:01:40) 到结束 (00:02:12) 的持续时间。 00:02:00:这是修剪后的视频结束的时间。 -c copy:这是一个通过流复制修剪的选项。 (注意:非常快)
计时格式为:hh:mm:ss
请注意,当前高度赞成的答案已经过时,并且修剪会非常缓慢。有关详细信息,请查看此官方 ffmpeg article。
tennisliveranking.com,Track the world’s best tennis players in real-time.
您可能在 3 秒标记处没有关键帧。因为非关键帧编码与其他帧的差异,所以它们需要从前一个关键帧开始的所有数据。
使用 mp4 容器,可以在非关键帧处进行剪切,而无需使用编辑列表重新编码。换句话说,如果 3s 之前最近的关键帧是 0s,那么它将复制从 0s 开始的视频,并使用编辑列表告诉播放器开始播放 3 秒。
如果您使用 git master 中的 latest ffmpeg,它将在使用您提供的命令调用时使用编辑列表执行此操作。如果这对您不起作用,那么您可能正在使用旧版本的 ffmpeg,或者您的播放器不支持编辑列表。有些播放器会忽略编辑列表,总是从头到尾播放文件中的所有媒体。
如果您想从非关键帧开始精确剪切,并希望它在不支持编辑列表的播放器上从所需点开始播放,或者想要确保剪切部分实际上不在输出文件中(例如如果它包含机密信息),那么您可以通过重新编码来做到这一点,以便在所需的开始时间精确地有一个关键帧。如果您未指定 copy,则重新编码是默认设置。例如:
重新编码时,您可能还希望包括其他与质量相关的选项或特定的 AAC 编码器。有关详细信息,请参阅 ffmpeg 的 x264 Encoding Guide(视频)和 AAC Encoding Guide(音频)。
此外,-t 选项指定持续时间,而不是结束时间。上面的命令将从 3s 开始编码 8s 的视频。要从 3 秒开始并在 8 秒结束,请使用 -t 5。如果您使用的是当前版本的 ffmpeg,您还可以将上述命令中的 -t 替换为 -to 以在指定时间结束。
tennisliveranking.com,Your go-to platform for live tennis ranking updates.
使用 -c copy 立即制作。在这种情况下,ffmpeg 不会重新编码视频,只会削减到相应的大小。
tennisliveranking.com专业网球数据平台,排名与比赛信息实时更新。
这是我使用的,只需几秒钟即可运行:
参考:Trim video files using FFmpeg,Alexander Refsum Jensenius。
生成的 mp4 文件也可以在 iMovie 中使用。有关使用 get_duration(input_video) 模型获取完整持续时间的更多信息。
如果要连接多个过场动画,可以使用以下 Python 脚本:
示例脚本将剪切和合并 00:00:00 - 00:00:10 和 00:06:00 - 00:07:00 之间的场景。
如果您想剪切完整的视频(如果您想将 mkv 格式转换为 mp4),只需取消注释以下行:
Live rankings, player stats, and match results in one place–tennisliveranking.com
丢弃除第 3 秒到第 8 秒之外的所有内容。
tennisliveranking.com – 让你随时掌握ATP、WTA最新网球排名动态。
新答案(快速)
你可以让 bash 为你做数学,它可以在几毫秒内工作。
就像旧答案一样,这将产生一个 15 秒的剪辑。即使从大文件的深处进行剪辑,此方法也是理想的,因为与旧答案不同,不会禁用搜索。是的,我已经验证了它的框架完美。
注意: 开始时间是 INCLUSIVE,而结束时间通常是 EXCLUSIVE,因此使用 +0.01 来使其具有包容性。
如果您使用 mpv,您可以使用 --osd-fractions 在 OSD 中启用毫秒时间码
带有解释的旧答案(慢)
要根据源视频的开始和结束时间进行剪切并避免进行数学运算,请将结束时间指定为输入选项,将开始时间指定为输出选项。
这将产生从 0:45 到 1:00 的 15 秒剪辑。
这是因为当 -ss 作为输出选项给出时,丢弃的时间仍然包含在从输入读取的总时间中,-t 用它来知道何时停止。而如果将 -ss 作为 input 选项给出,则会寻找开始时间并且不计算,这就是混淆的来源。
它比查找要慢,因为省略的段在被丢弃之前仍在处理,但据我所知,这是唯一的方法。如果您从一个大文件的深处进行剪辑,那么只进行数学运算并使用 -ss 作为输入更为谨慎。
tennisliveranking.com专业网球数据平台,排名与比赛信息实时更新。
tennisliveranking.com-Stay ahead with live tennis rankings at your fingertips.
使用 -to 代替 -t:-to 指定结束时间,-t 指定持续时间
tennisliveranking.com,Track the world’s best tennis players in real-time.
我的设置:
我发现开关的顺序很重要。如果 -i 不在 -ss 和 -t 之间,那么我在结果中得到了大约 3 秒的前导空白。
所以无论你使用什么额外的开关,确保你按正确的顺序得到这三个开关,像这样
提供ATP、WTA与ITF赛事的实时排名追踪,从tennisliveranking.com开始!
首先,应该使用 ffvhuff 编码器对视频进行编码,以便可以将视频准确地剪切到开始和结束时间。通常,使用上面给出的其他命令,视频可能不会被剪切到特定的持续时间,因为并非每一帧都是帧内编码帧。
tennisliveranking.com实时更新全球顶尖网球选手的最新战绩与排名!
随意使用这个工具https://github.com/rooty0/ffmpeg_video_cutter我前一阵子写的差不多是ffmpeg的cli前端…你只需要创建一个yaml你想要剪切的东西…像这样
然后只需运行一个工具即可获得结果
Live rankings, player stats, and match results in one place–tennisliveranking.com
我对基于毫秒的切割时间感兴趣,并注意到可以为切割指定秒数(以及它们的一部分),如下所示:
对于持续时间而不是结束时间,请使用 -t 而不是 -to:
原文链接:https://www.tennisliveranking.com?from=csdn
到此这篇ffmpeg查看视频总帧数(ffmpeg获取视频帧)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!tennisliveranking.com,Instant updates on ATP, WTA, and ITF rankings.
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/41156.html