更轻松地获取视频文件中的时间码

Getting time codes in video files easier

我正在浏览一些视频 trim 他们(提取部分视频)。

我知道有数十亿种软件可以轻松 trim 视频,但我还没有找到任何不重新编码结果的软件。

我现在的方法是在MPC-BE中打开视频->播放->暂停->记下时间->继续找地方结束剪辑->暂停->记下结束时间对于剪辑。然后我获取时间码并使用 ffmpeg 提取该部分。通常与类似的东西:

ffmpeg -i input.mp4 -ss 01:50:00 -to 01:55:00 -c:v copy -c:a copy output.mp4

我的问题是有没有更简单的方法来获取时间码?最好的办法是使用 ffplay 进行播放,只需按下组合键即可复制时间码。但我也开放了任何其他可以更轻松地获取时间码的方法。正如您可能了解的那样,手动记下 23 个剪辑的时间码真的很痛苦。

这是我的方法:使用 ffplay,

ffplay -vf "drawtext=text='%{pts\:hms}':box=1:x=(w-tw)/2:y=h-(2*lh)" J1.mp4

其中 J1 是要播放的文件。

在电影中写时间:

ffmpeg -start_at_zero -copyts -ss 00:00:14.435 -i showfreqs.mp4 -vf "drawtext=fontfile=/path/to/Arial.ttf: fontsize=45:fontcolor=yellow:box=1:boxcolor=black:x=(W-tw)/2:y=H-th-10:text='Time\: %{pts\:hms}'" outputTemps.mp4

或尝试:

ffmpeg -i output.mp4 -vcodec libx264 -cmp 22 -vf "drawtext=fontfile=DroidSansMono.ttf: timecode='09\:57\:00\:00': r=23.976: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099" -y output.mov

我发现这个教程可以展示:https://www.youtube.com/watch?v=noKvwcnT9aw

mpv

可用的播放器 mpv support scripts for custom functionality that is not part of the core player. There are several user scripts 涉及 cutting/trimming 可能有帮助:

  • copyTime - 获取视频的当前时间并以HH:MM:SS.MS.
  • 格式复制到剪贴板
  • trim.lua - 创建 trim 视频文件而不转码。利用 ffprobe 获取准确的关键帧。
  • splice - 使用当前播放视频中的剪辑创建视频。
  • mpv_slicing_copying - A fork from mpv_slicing。它将以原始格式而不是 RGB 格式剪切视频片段。
  • excerpt - 允许您从媒体文件中快速创建摘录,您只需设置开始和结束标记。

无损剪辑

LosslessCutffmpeg 的 GUI,用于无损 trim 视频和音频文件的制作和剪切。