我正在尝试使用ffmpeg将剪辑分成短时间间隔(我从csv中读取)。我正在使用的命令如下所示:
ffmpeg -i filename.mp4 -ss 00:00:00.030000 -to 00:00:02.030000
-pix_fmt yuv420p -c copy new_filename.mp4
这成功地将父mp4分成许多较小的mp4,但较小的文件会丢失部分或全部视频。他们中的大多数最终只是音频。有些人有视频 - 但只有大约一半的剪辑(其余是黑色)。音频总是在那里。有什么想法可能会发生这种情况吗?
一些注意事项:我正在使用ffmpeg 3.0.2。此外,我将此命令创建为Python列表并使用以下调用
运行它subprocess.run(cmd, stderr=subprocess.STDOUT)
答案 0 :(得分:0)
Mulvya和szatmary的评论回答了这个问题。发布这些作为回答问题的答案。
“OP正在进行流式复制。如果你将-c copy更改为-c,则对OP:a 复制,它会工作。“ - Mulvya
“ - c拷贝不起作用,因为那时没有关键帧 范围。你必须重新编码。“-szatmary
Mulvya建议的解决方案是添加流说明符。我这样做了,得到了我想要的结果。这里有文档:https://ffmpeg.org/ffmpeg.html#Stream-specifiers-1