写点什么

FFmpeg 的一些应用实践 - 补充

作者:为自己带盐
  • 2021 年 12 月 29 日
  • 本文字数:1262 字

    阅读完需:约 4 分钟

FFmpeg的一些应用实践-补充

前面写过一篇《FFmpeg 的一些使用实践》,最近整理了一下常用的剪辑视频的操作,再次补充罗列一下。

场景

前阵子,我们举办了很多场直播活动,然后,产生了很多的回放文件。开始的时候,回放文件是由运营人员来转码编辑的。后来因为直播太过紧密,人工操作效率太低,就考虑通过技术手段来自动化的完成转码操作。

因为我们是小公司,该省的还是要省,所以没有使用云服务提供的一些实时转码工具。还是利用的祖传的 FFmpeg 来进行的这项工作。

具体的步骤就是

1.先分割一下视频,把不重要,不需要,不易回放展示的部分先剪掉,这部操作会把一个完整的回放分割成多段

2.在把分割好的多段视频合并成 1 端

3.按需进行视频的转码操作,主要是分辨率,码率,帧率的平衡

4.打上防伪水印,分割成 hls 协议格式的多段小视频,也就是一个 m3u8 的索引文件,多个 ts 文件

视频分割

@echo offrem 分割视频,需要调整的主要是,具体时间参数,文件名和输出文件名,第一个时间参数是开始分割的起始时间,第二个是分割时长,注意是时长rem 第一个文件名参数是输入参数,第二个也就是最后一个参数是输出参数,注意文件名不要一致,也不用和目录内其他文件名一致rem 可以连续分割多个视频ffmpeg -ss 00:00:00 -t 00:03:01 -i input_1.flv -vcodec  copy -acodec copy output_1.flvffmpeg -ss 00:00:00 -t 00:11:01 -i input_2.flv -vcodec  copy -acodec copy output_2.flvpause
复制代码

视频合并

@echo offrem 合并文件,这里需要把要合并的文件列表放入指定的txt文件中,回车分割,这里指定的是contect.txt,可以自定义文件名,最后一个参数是输出的合并后的文件名ffmpeg -f concat -i contect.txt -c copy output-contect.flvpause
复制代码

视频转码

@echo offffmpeg -i input.flv -vcodec libx264 -preset fast -tune film -b:v 2000k -s 1280*720 -r 25 output_convert.flvpause
复制代码

打水印,分割

@echo offrem 分割视频,同时打上logo水印,将要分割的文件放入list.txt(可自定义)中,回车分割rem ffmpeg -i 5_1.flv -vcodec libx264 -preset fast -tune film -b:v 2000k -s 1280*720 -r 25 -vf "movie=watermark1.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]"  -profile:v baseline -level 3.0 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls outputvideo.m3u8@echo offif exist list.txt (	for /f %%i in (list.txt) do (	echo 开始分隔【%%i】...    mkdir %%~ni    		ffmpeg -i %%i -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]"  -profile:v baseline -level 3.0 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls %%~ni\%%~ni.m3u8		echo %%i 分隔完成!	)	echo 此次任务结束) else ( 	echo 暂时没有最新的分隔文件)
复制代码

看一下效果图

这是最终在打水印,分割 ts 文件的截图

直接用 ffmpeg 来剪辑合并视频非常快,比常见的视频处理软件都快,这只是分布的操作,还可以借助 ffmpeg 开放的能力,编写一些程序代码,组合做出很多很有趣的工具来。

发布于: 刚刚
用户头像

学着码代码,学着码人生。 2019.04.11 加入

狂奔的小码农

评论

发布
暂无评论
FFmpeg的一些应用实践-补充