【问题标题】:Why do the results of my "ffmpeg -ss -to" split have audio but no video?为什么我的“ffmpeg -ss -to”拆分结果有音频但没有视频?
【发布时间】:2018-04-09 09:09:43
【问题描述】:

我正在尝试使用 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)

【问题讨论】:

  • @rollstuhlfahrer 它不会 - OP 正在流复制。对OP来说,如果你把-c copy改成-c:a copy就行了。
  • -c 复制将不起作用,因为该时间范围内没有关键帧。您必须重新编码。
  • 这正是我所需要的!感谢您的帮助和快速解答。

标签: python ffmpeg mp4


【解决方案1】:

Mulvya 和 szatmary 的 cmets 回答了这个问题。发布这些作为结束问题的答案。

"OP 正在流式复制。对于 OP,如果您将 -c 复制更改为 -c:a 复制,它会起作用的。”——Mulvya

"-c 复制将不起作用,因为当时没有关键帧 范围。你必须重新编码。”——szatmary

Mulvya 建议的解决方案是添加流说明符。我这样做了,得到了我想要的结果。这里有文档:https://ffmpeg.org/ffmpeg.html#Stream-specifiers-1

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    相关资源
    最近更新 更多