FFMPE的两个参考文章

FFMpeg 的常用说明

1. 让视频以H.264编码

 

ffmpeg -i field.mp4 -c:v libx264 -crf 18 field_crf18.mp4

此处我们将恒定速率因子设置为 18。比例的范围是 ,其中无损,是默认值,并且质量可能最差。较低的值导致较高的质量,主观上合理的范围是 。考虑 17 或 18 在视觉上无损或几乎无损。

 

2. 缩放、裁剪和垫

 

原视频是1920*1080的

ffmpeg -i moon.mp4 -vf scale=640:480,setdar=4:3 moon_sc.mp4

这样就改为了640 * 480 ,且4:3的视频;

 

如果视频因为上面的问题导致比例失真,则使用下面的参数 -2: 480 ,则保持保持纵横比

ffmpeg -i moon.mp4 -vf scale=-2:480 moon_sc_ar.mp4

 

上面的重新缩放的视频大小,它比预期的要大,可以使用下面的方法裁切视频:

ffmpeg -i moon_sc_ar.mp4 -vf "crop=640:in_h:(in_w-out_w)/2:0" moon_sc_ar_crp.mp4

 

在上面的参数中:crop=out_w:out_h:x:y

  • out_w指示输出矩形的宽度
  • out_h指示输出矩形的高度
  • x并且是输出矩形的左上角y

 

下面是填充视频

ffmpeg -i moon_sc_ar_crp.mp4 -vf "pad=1920:1080:(out_w-in_w)/2:(out_h-in_h)/2" moon_pad.mp4

 

如果想让填充区域为白色,则:

ffmpeg -i moon_sc_ar_crp.mp4 -vf "pad=1920:1080:(out_w-in_w)/2:(out_h-in_h)/2:white" moon_padwhite.mp4

 

3. 视频的堆叠

我们可以水平堆叠视频:

ffmpeg -i relax.mp4 -i stream.mp4 -filter_complex hstack hComb.mp4

也可以垂直堆叠

ffmpeg -i relax.mp4 -i stream.mp4 -filter_complex vstack vComb.mp4

 

也可以创建一个视频马赛克

ffmpeg -i field.mp4 -i moon.mp4 -i relax.mp4 -i stream.mp4 \

-filter_complex "[0:v][1:v]hstack[h1];[2:v][3:v]hstack[h2];[h1][h2]vstack[v]" \

-map "[v]" -c:v libx264 -crf 18 combAll.mp4

 

以上内容来自yichuanzhu.com/creating-powerpoint-compatible-videos-with-ffmpeg

 

另外一篇很不错的参考

 

让以happy1/2/3等命名的图片,做成视频,并且1秒一张:

 

ffmpeg -framerate 1 -i happy%d.jpg -c:v libx264 -r 30 output.mp4

上面的命令需要输入图像,.这将搜索具有最低数字的图像,并将其设置为起始图像。然后,它将该数字递增 1,如果图像存在,它将被添加到序列中。你可以自己指定起始映像,如果我们添加到上面的命令中,起始映像将是 。-i happy%d.jpg-start_number n-start_number 3happy3.jpg

选项总是写在它们引用的文件之前,因此在我们的示例中,是用于输入图像的选项,也是输出文件的选项。-framerate 1 -i-c:v libx264 -r 30

我们用来定义读取图片的速度,在本例中为每秒 1 张图片。省略帧速率将默认为 25 帧速率。-framerate 1

-r 30是输出视频的帧速率。同样,如果我们不定义它,它将默认为 25。

指定用于对视频进行编码的编解码器。 是用于将视频流编码为 H.264/MPEG-4 AVC 压缩格式的库。-c:v libx264x264

您可以添加 或(当您的输出为 H.264 时)以提高视频与各种播放器的兼容性:-vf format=yuv420p-pix_fmt yuv420p

 

$ ffmpeg -framerate 1 -i happy%d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4

 

 

使用 FFmpeg concat 解复用器

您可以使用 concat 解复用器连接文件中列出的图像。

下面,我们创建一个带有标签的文件,并为幻灯片添加图像列表。我们指定每个图像将显示的持续时间(2 秒)。您可以为每个图像指定不同的持续时间:input.txt

file 'happy1.jpg'
duration 2
file 'happy2.jpg'
duration 2
file 'happy3.jpg'
duration 2
file 'happy4.jpg'
duration 2
file 'happy5.jpg'
duration 2
file 'happy6.jpg'
duration 2

然后,我们运行以下命令来输出图像的视频幻灯片:

$ ffmpeg -f concat -i input.txt -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4

将音频添加到视频幻灯片

您可以通过添加音轨来使视频幻灯片更有趣:

$ ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -i freeflow.mp3 \
  -shortest -c:v libx264 -r 30 -pix_fmt yuv420p output6.mp4

上面添加了第二个输入文件,该文件是音频文件。-i freeflow.mp3

该选项将输出视频的长度设置为两个输入文件中的最短长度。由于我们的音频文件比六张图像的幻灯片长,因此输出视频的长度就是幻灯片的长度。-shortest

向视频幻灯片添加过渡效果

您可以通过在从一个图像过渡到另一个图像时添加一些效果来进一步改进视频幻灯片。

下面为图像添加淡入淡出效果:

$ ffmpeg \
-loop 1 -t 5 -i happy1.jpg \
-loop 1 -t 5 -i happy2.jpg \
-loop 1 -t 5 -i happy3.jpg \
-loop 1 -t 5 -i happy4.jpg \
-loop 1 -t 5 -i happy5.jpg \
-loop 1 -t 5 -i happy6.jpg \
-i freeflow.mp3 \
-filter_complex \
"[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=out:st=4:d=1[v0]; \
 [1:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
 [2:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
 [3:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \
 [4:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v4]; \
 [5:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v5]; \
 [v0][v1][v2][v3][v4][v5]concat=n=6:v=1:a=0,format=yuv420p[v]" -map "[v]" -map 6:a -shortest output7.mp4

该选项指定每个图像的持续时间(以秒为单位)并循环图像。我们添加一个音频文件,然后添加一些配置,这将添加淡入淡出效果。-t-loop 1-i freeflow.mp3filter_complex

我们使用的一些图像具有不同的尺寸,因此我们使用 with 将图像调整为特定尺寸,使它们均匀。 淡入或淡出图像,设置淡入或淡入的持续时间并指定淡入淡出的开始时间。scalepadfadedst

使用https访问   shotstack.io/learn/use-ffmpeg-to-convert-images-to-video/

posted @   saromman  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示