美文网首页
基于ffmpeg的视频处理汇总

基于ffmpeg的视频处理汇总

作者: 卜是 | 来源:发表于2020-07-19 11:29 被阅读0次

    本文只列出自己工作中所使用到的视频处理相关指令,若想更全面的了解,可查询官网:http://ffmpeg.org/ffmpeg-all.html


    1、视频分割

        1)快速分割,但分割时间不准确

            ffmpeg -ss $beginTime -t $lengthTime -accurate_seek -i $srcFileName -codec copy -avoid_negative_ts 1 $dstFileName

        2)准确分割,但因分割时需要编解码,导致分割速度慢

            ffmpeg -ss $beginTime -t $lengthTime -i $srcFileName -c:v libx264 -c:a aac -strict experimental -b:a 98k $dstFileName

    其中:$beginTime——分割起始时间; $lengthTime——分割视频时间长度;$srcFileName——原始视频文件;$dstFileName——分割生成的目标视频文件名

    2、视频拼接

        ffmpeg -f concat -safe 0 -i $srcFileList -c copy $dstFileName > /dev/null 2>&1

    其中:$srcFileList——需要拼接的原始视频文件列表;$dstFileName——拼接生成的目标视频文件

    3、hls视频流转换为mp4文件

        ffmpeg -i $hlsHttpAddr -c copy $dstFileName

    其中: $hlsHttpAddr——hls视频流对应的http地址; $dstFileName——目标视频文件

    4、视频文件转换生成音频文件

        ffmpeg -i $srcFileName -f wav -ar 16000 -ac 1 $dstFileName

    其中:$srcFileName——原始视频文件; $dstFileName——生成的音频文件;且生成的音频为单通道

    5、给视频添加一个不同颜色大小的背景画布

        1) 先生成一个纯色的视频文件,再将原始视频叠加至纯色的视频上

            ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv

            ffmpeg -i main.mp4 -vf 'movie=effect.mp4 [f];[in][f] overlay=0:0 [out]' out.mp4

        2)直接叠加视频于纯色画布上

        ffmpeg -f lavfi -t 80 -i color=c=red:s=1920x1080 -i SHXERD100805.mp4 -filter_complex "overlay[out]" -map "[out]" output_backgroud.mkv

    其中:-t为指定生成视频文件的时长,若不指定则生成视频时长会一直累加,直到退出程序,因而需提前计算出叠加视频的时间,计算视频时长可使用如下命令:

        ffmpeg -i $srcFileName 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//

    6、在视频上叠加图片,可一次性叠加多个图片

        ffmpeg -i input.mp4 -i image1.png -i image2.jpg -filter_complex 'overlay=x=W-w:y=H-h,overlay=x=0:y=0' output.mp4

    7、在视频上叠加文字

        ffmpeg -i input.mp4 -vf "drawtext=fontfile=simhei.ttf: text='my video':x=10:y=10:fontsize=24:fontcolor=white:shadowy=2" output.mp4

    如果需要在一条命令中添加多个文字,可参考如下命令:

    ffmpeg -i input.mp4 -vf "drawtext=fontfile='msyh.ttf':text='my video':x=20:y=20:fontsize=40:fontcolor=black@0.2,drawtext=fontfile='msyh.ttf':text='我的视频':x=100:y=100:fontsize=40:fontcolor=black@0.8" output.mp4 -y

    相关文章

      网友评论

          本文标题:基于ffmpeg的视频处理汇总

          本文链接:https://www.haomeiwen.com/subject/jvdlkktx.html