我的目标是使用ffmpeg精确地帧分割XDCAM或H264视频。 我猜这个问题来自它的长GOP结构,但我正在寻找一种方法来分割视频而不重新编码它。 我应用偏移量只对视频的特定部分进行编码(比如从第10秒到媒体结尾) 有什么想法吗?
答案 0 :(得分:0)
请参阅ffmpeg documentation。
您会找到一个选项-frames
。该选项可用于指定给定输入流(在下面的流0:0是第一个输入文件,第一个视频流)中要记录的帧数。该选项可以与其他选项结合使用,以便在输入文件中的某个位置启动(时间偏移等等)
ffmpeg -i intput.ts -frames:0:0 100 -vcodec copy test.ts
该命令只对视频的前100帧进行demux和remux(无重新编码)。
如上所述,你可以将它与跳跃结合起来。使用''-ss offset(输入)' '你可以指定一个“Frame Accurate”位置,即。帧1在1min10seconds = 0:1:10:14之后。该选项应在输入之前使用,如下所示。
ffmpeg -ss 00:00:10.0 -i intput.ts -frames:0:0 100 -vcodec copy test.ts
ffmpeg丢弃前10秒并将100帧旁路到多路复用器。
答案 1 :(得分:0)
我不确定是否可以通过ffmpeg进行1次传球,但是2-3次
第一遍:你只是将原始帧转储到文件 第二遍:你找到了封闭的gop(mxdcam)/ idr frame(h264),索引< =你想要开始的帧的索引
如果索引相等,您可以启动多路复用器。否则你需要解码从封闭的gop / idr帧到下一个封闭的gop / idr帧的序列并编码你想要的起始帧