学习笔记──FFmpeg命令行 含义

cmd = [

    'ffmpeg',

    '-stream_loop', '10', # 循环播放第一个输入文件10次

    '-i', bgmPath, # 第一个输入文件

    '-i', videoPath, # 第二个输入文件

    '-filter_complex', "[0:a]volume=0.1[a0];[1:a][a0]amix=inputs=2:duration=first:dropout_transition=3[out]", #你可以在一个复杂的过滤器图中定义多个音频和视频过滤器,并指定它们之间的连接和操作。

    '-map', '1:v', # 映射视频流(从输入文件0的第一个视频流)

    '-map', '[out]', # 映射音频流(从输入文件1的第一个音频流)

    '-c:v', 'copy', # 视频编解码器设置为copy,即直接复制视频流

    '-c:a', 'aac', # 音频编解码器设置为aac

    '-strict', 'experimental', # 允许使用实验性功能(对于某些版本的FFmpeg可能需要)

    '-shortest', # 输出文件的时长与最短的输入流相同

    '-y', # 覆盖输出文件(如果存在)

    outVideoPath # 输出文件路径

]

-filter_complex 部分

'-filter_complex', "[0:a]volume=0.1[a0];[1:a][a0]amix=inputs=2:duration=first:dropout_transition=3[out]", // 你可以在一个复杂的过滤器图中定义多个音频和视频过滤器,并指定它们之间的连接和操作。

    //  [0:a]volume=0.1[a0] 将第1个输入(背景音乐)的音频流音量降低为原音量的10%。[a0] 是降低音量后的音频流的标签。

    // [1:a][a0]amix=inputs=2:duration=first:dropout_transition=3[out] 将第2个输入的音频流和降低音量后的背景音乐音频流混合在一起。

    // 参数 inputs=2 表示有两个输入,分别是原视频的音频和降低音量后的背景音乐音频。

    // duration=first 表示以第一个输入为主,如果第一个输入结束,后续输入的音频将不再混合。

    // dropout_transition=3 表示混合时的过渡时间为3秒。

    // [out] 是输出混合后的音频流的标签。

 

// -vf "drawtext=text='Your Text Here':x=(w-text_w-10):y=10:fontsize=24:fontcolor=white:enable='between(t,0,0)'"

// 这里的 -vf 参数表示视频过滤器,用于在视频流上应用滤镜效果。drawtext 是其中的一个滤镜,它用于在视频中绘制文本。

// text='Your\nText Here' 表示要绘制的文本内容是 'Your Text Here'。你可以将其中的 'Your Text Here' 替换为你想要添加的文本内容。 可以使用 \n 来表示换行

// x=(w-text_w-10) 表示文本的横坐标位置。这里的 (w-text_w-10) 表示在视频宽度的右侧,距离右边框 10 个像素的位置。这样就可以将文本放在视频的右上角。

// y=10 表示文本的纵坐标位置。这里的 10 表示距离视频顶部 10 个像素的位置。这样就可以将文本放在视频的上方。

// 例:x=(w-text_w)/2:y=(h-text_h)/8 : (w-text_w)/2 表示将文本水平居中放置,(h-text_h)/8 表示将文本垂直居中放置,且距离视频顶部 1/8 处。

// fontsize=24 表示文本的字体大小为 24 像素。

// fontcolor=white 表示文本的字体颜色为白色。

// :enable='between(t,0,0)' between(t,0,0) 的含义是在视频的时间范围从 0 到 0 秒之间应用滤镜。
 
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容