【问题标题】:FFMPEG : Cut Video AND Include Ending Video/ImageFFMPEG:剪切视频并包括结束视频/图像
【发布时间】:2017-03-20 03:31:25
【问题描述】:

我正在使用这个命令行在视频结尾添加一个五秒的图像:

ffmpeg -i "f:\output\input.mov" -loop 1 -t 5 -i "f:\output\taff.jpg" -f lavfi -t 5 -i anullsrc -filter_complex "[0:v] [0:a] [1:v] [2:a] concat=n=2:v=1:a=1 [v] [a]" -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4

效果很好,但有时我想剪切视频,然后添加 5 秒。因此,制作一个 120 秒的视频 110 秒,然后添加 5 秒的结尾。

可能在一个命令行中?我尝试将其分成两部分,从剪切视频开始,但是如果我尝试使用 ffmpeg 重新编码使用 ffmpeg 剪切的视频,则会出现“无法解析选项值“-1”像素格式”错误这个:

ffmpeg -i f:\output\input.mov -vcodec copy -acodec copy -ss 00:00:00.000 -t 00:01:50.000 f:\output\output.mov

如果我尝试针对它运行第一个命令行,那么该输出视频将会出错。

感谢所有关于缩短视频然后添加结尾的反馈。

干杯! 瑞恩

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    使用

    ffmpeg -t 110 -i "f:\output\input.mov"
           -loop 1 -t 5 -i "f:\output\taff.jpg"
           -f lavfi -t 5 -i anullsrc
           -filter_complex "[0:v][0:a][1:v][2:a]concat=n=2:v=1:a=1[v][a]"
           -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4
    

    使用scale2ref,应该是

    ffmpeg -t 110 -i "f:\output\input.mov"
           -loop 1 -t 5 -i "f:\output\taff.jpg"
           -f lavfi -t 5 -i anullsrc
           -filter_complex "[1][0]scale2ref[2nd][ref];[ref][0:a][2nd][2:a]concat=n=2:v=1:a=1[v][a]"
           -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4
    

    如果图像具有不同的纵横比,请使用

    ffmpeg -t 110 -i "f:\output\input.mov"
           -loop 1 -t 5 -i "f:\output\taff.jpg"
           -f lavfi -t 5 -i anullsrc
           -filter_complex "[0]split[base][full];[base]trim=0:5,drawbox=t=fill[base];[1][base]scale2ref='if(lt(mdar,dar),oh*mdar/sar,iw)':'if(lt(mdar,dar),ih,ow*sar/mdar)'[2nd][base];[base][2nd]overlay='(W-w)/2':'(H-h)/2'[padded];[full][0:a][padded][2:a]concat=n=2:v=1:a=1[v][a]"
           -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4
    

    最后一个命令需要 ffmpeg 版本 >= 3.4

    【讨论】:

    • 谢谢!很快就会进行测试。另外,不要堆叠问题,但如果 .mov 的大小与 jpg 不同,是否可以自动裁剪 jpg 以匹配视频尺寸?
    • 是的,使用 scale2ref 过滤器。
    • 谢谢。我必须有较旧的 ffmpeg 版本,因为它无法识别该过滤器。
    • ffmpeg -i "f:\output\yt.mov" -loop 1 -t 5 -i "f:\output\taff.jpg" -f lavfi -t 5 -i anullsrc -filter_complex "[1][0]scale2ref[2nd][ref] [0:v] [0:a] [1:v] [2:a] concat=n=2:v=1:a=1 [v] [a]" -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\ytready.mp4 我更新并识别,但运行此字符串时出错。
    • Gyan 的第二个回答完美运行。 ffmpeg -t 110 -i "f:\output\input.mov" -loop 1 -t 5 -i "f:\output\taff.jpg" -f lavfi -t 5 -i anullsrc -filter_complex "[1][ 0]scale2ref[2nd][ref];[ref][0:a][2nd][2:a]concat=n=2:v=1:a=1[v][a]" -c:v libx264 -c:a aac -strict -2 -map "[v]" -map "[a]" f:\output\output.mp4 但我找不到 scale2ref 的参数以避免拉伸视频的输入图像结尾.我想在不丢失纵横比的情况下制作自动调整图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 2018-02-26
    • 2021-09-06
    • 1970-01-01
    • 2017-10-01
    相关资源
    最近更新 更多