gpt4 book ai didi

ffmpeg - 组合 FFmpeg 过滤器的速度优势?

转载 作者:行者123 更新时间:2023-12-04 23:02:08 26 4
gpt4 key购买 nike

我目前正在使用五个单独的 FFmpeg 进程来执行以下操作:

  • 修剪和裁剪 Vid B
  • 将 Vid B 缩放到 Vid A 的高度
  • 结合 Vid B 和 Vid A
  • 添加淡入淡出到组合 Vid
  • 添加覆盖以淡入/淡出视频

  • 我将它们全部设置为超快,但仍然需要很长时间 - 每个视频大约 10 秒长时大约需要 40 秒。

    我最初探索了组合一些过滤器,但无法在我可用的时间范围内使其工作。我也不确定花在弄清楚如何组合所有过滤器上的时间是否会在更快的处理时间中得到返回。

    来自您出色的 FFmpeg 大师的任何想法/见解?这会加快处理速度吗?如果是这样,我应该将所有命令组合在一起还是有一些我应该组合,而另一些我应该分开?

    这是我当前的命令,所有这些都有效:
    // trimming 200ms off begining of vid B + cropping frame (note that I have previously retrieved dimensions and duration of both videos with ffprobe)
    1. `ffmpeg -i vidB.mov -ss 200 -t ${vidB.duration} -async 1 -filter:v "crop=iw:${vidB.croppedHeight}:0:${vidB.offset}" -preset ultrafast -c:a copy croppedVidB.mov`

    // scale Vid B up to Vid A's height
    2. `ffmpeg -i croppedVidB.mov -vf scale=-2:${vidA.height} vidBScaled.mov`

    // combine videos
    3. `ffmpeg -i vidA.mov -i vidBScaled.mov -filter_complex "[0:v][1:v] hstack=inputs=2[v]; [0:a][1:a]amix[a]" -map "[v]" -map "[a]" -preset ultrafast -ac 2 combined.mov`

    // add fade in & out
    4. `ffmpeg -i combined.mov -sseof -1 -copyts -i combined.mov -filter_complex "[1]fade=out:0:30[t];[0][t]overlay,fade=in:0:30[v]; anullsrc,atrim=0:1[at];[0][at]acrossfade=d=1,afade=d=1[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 22 -preset ultrafast -shortest fadeInOut.mov`

    // add overlay
    5. `ffmpeg -i fadeInOut.mov -i overlay.png -filter_complex overlay=W-w-10:H-h-10 -codec:a copy -preset ultrafast -async 1 overlay.mov`

    提前感谢您的想法!

    最佳答案

    在一个命令中完成所有操作:

    ffmpeg -i vidA.mov -ss 200 -t ${vidB.duration} -i vidB.mov -i overlay.png -filter_complex "[1]crop=iw:${vidB.croppedHeight}:0:${vidB.offset},scale=-2:${vidA.height}[right];[0][right]hstack=inputs=2,fade=t=in:duration=1,fade=t=out:start_time=${vidB.duration - 1}:duration=1[bg];[bg][2]overlay=W-w-10:H-h-10:format=auto,format=yuv420p[v];[0:a][1:a]amix,afade=t=in:duration=1,afade=t=out:start_time=${vidB.duration - 1}:duration=1[a]" -map "[v]" -map "[a]" -c:v libx264 -preset ultrafast -c:a aac -ac 2 -movflags +faststart output.mp4

    注意 ${vidB.duration - 1} : 这是我用 bc 显示你需要减去1 秒的懒惰方法。或类似的。

    关于ffmpeg - 组合 FFmpeg 过滤器的速度优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61595673/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com