AI 教你从前端转型音视频开发高手

前面我们介绍过几篇关于音视频开发的文章,这里不得不提下 ffmpeg。

最直观的案例:

转码

对指定高分辨率的进行低分辨率的转码:

ffmpeg 将 4k 的 a.mp4 转码生成不带音频流的 hd 文件

对应的命令:

ffmpeg -i a.mp4 -vf scale=-2:1080 -an hd.mp4

*、”-i a.mp4″ 

输入文件为 a.mp4。

*、”-vf scale=-2:1080″ 

表示将视频缩放至高度为 1080 像素,宽度自适应。

*、”-an” 

表示不包含音频流。

*、”hd.mp4″ 

表示输出文件名为 hd.mp4。

关于 -i 可以多个吗?

是的,比如多个视频一起处理:

在使用FFmpeg进行视频处理时,有时候需要同时处理多个输入文件。这时可以使用多个-i参数来指定多个输入文件。

下面是一个示例命令:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex [0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1 output.mp4

这条命令将输入文件input1.mp4和input2.mp4拼接成一个新的视频文件。

其中,-filter_complex参数用于指定复杂的滤镜操作:

[0:v]表示第一个输入文件的视频流

[0:a]表示第一个输入文件的音频流

[1:v]表示第二个输入文件的视频流

[1:a]表示第二个输入文件的音频流。

concat=n=2:v=1:a=1表示对两个输入文件进行拼接,输出一个视频流和一个音频流。

如果需要处理更多的输入文件,只需要在命令中添加更多的-i参数即可。例如:

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -filter_complex [0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1 output.mp4

这条命令将输入文件input1.mp4、input2.mp4和input3.mp4拼接成一个新的视频文件。

同样地,我们使用了-filter_complex参数来指定复杂的滤镜操作,[0:v]、[0:a]、[1:v]、[1:a]、[2:v]和[2:a]分别表示三个输入文件的视频流和音频流,concat=n=3:v=1:a=1表示对三个输入文件进行拼接,输出一个视频流和一个音频流。

能加水印吗?

其实就是一个指定的视频,一个指定的图片,所以也是 2 个 -i

ffmpeg -i input.mp4 
-i watermark.png 
-filter_complex "overlay=10:10" output.mp4

这里的 overlay 是叠加必会的。后面跟着的是前景视频相对于背景视频左上角的偏移量(也就是 x 和 y 坐标)

通过修改 overlay 过滤器的参数,我们可以调整前景视频在背景视频中的位置和大小

如何放正中央:

ffmpeg -i video2.mp4 
-i video1.mp4 
-filter_complex "overlay=(W-w)/2:(H-h)/2" output.mp4

其中 W 和 H 分别是背景视频的宽度和高度,w 和 h 分别是前景视频的宽度和高度。这样计算出来的 (W-w)/2 和 (H-h)/2 就是前景视频相对于背景视频左上角的偏移量,使得前景视频居中显示。

这里提一个知识点:HD 和 1080p 的区别?

HD和1080p都是指高清视频,但它们有些微妙的区别。

HD(High Definition)是一个广义的术语,用于描述任何高于标准分辨率的视频。

这意味着,只要视频的分辨率超过了标准分辨率,例如720×480或720×576,它就可以被称为高清视频,无论它的具体分辨率是多少。

而1080p则是一种具体的高清视频格式,它的分辨率为1920×1080像素,也被称为全高清(Full HD)。1080p的画质非常出色,可以显示更多的细节和清晰度,相比标准分辨率的视频画面更加逼真。

因此,可以说1080p是一种特定的高清视频格式,而HD则是一个更加通用的术语,可以用来描述各种不同分辨率的高清视频。

后面我们还有续篇,欢迎对 ffmpeg 的关注转发。喜欢音视频开发的同学也一起学习哈.

作者: 大前端视野

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论