这是一项简单的任务。我想制作一个转换后的视频剪辑,以便-copyts
获得其真实时间码。例如,此命令的转换剪辑:
ffmpeg -hide_banner -ss 57:41.76 -i input.mp4 -copyts -fs 4085Ki -vf scale=1280:-1 -c:v libvpx -crf 10 -b:v 1000K -maxrate:v 1600K -bufsize 800Ki -threads 4 -quality good -cpu-used 5 -c:a libvorbis -b:a 64Ki -maxrate:a 128Ki input.webm
持续时间为 31 秒,但是:
frame= 938 fps=7.7 q=0.0 Lsize= 4089kB time=00:58:13.15 bitrate= 9.6kbits/s speed=28.8x
说它有 58:13.15 分钟。
-copyts
我可以通过从命令代码中删除来实现正常持续时间,但我使用的全部原因-copyts
是避免每次都必须计算下一个段,因为我可以设置-ss
为 58:13.15 并开始。
对于这个问题,有没有办法修改转换文件的持续时间没有重新转换?比如修改元数据?
我在使用 Windows 7。
答案1
我只是不得不这么做-c copy
。我已经忘记了:
将所有新剪辑放入一个新文件夹(建议使用 webm),然后在该文件夹中创建另一个名为的文件夹new
并执行以下操作
ffmpeg -i input.webm -c copy new\output.webm
对于自动化过程,请执行以下操作:
for %i in ("*.webm") do ffmpeg -i %i -c copy new\%~ni.webm
这会对-c copy
您转换的所有剪辑重复该命令。