ffmpeg 使用文档 您所在的位置:网站首页 ffmpeg裁切视频 ffmpeg 使用文档

ffmpeg 使用文档

2023-03-30 15:12| 来源: 网络整理| 查看: 265

ffmpeg 是一个开源的多媒体处理工具,可以用来转换、处理各种音视频格式。以下是 ffmpeg 的基本使用方法:

安装:建议使用官方网站下载安装包,安装方法视不同操作系统而定。基本命令格式:ffmpeg [全局选项] [输入文件选项] -i 输入文件 [输出文件选项] 输出文件全局选项:指定全局参数,如版本、格式等。示例:-version、-formats。输入文件选项:指定输入文件的相关参数,如格式、解码器等。示例:-f、-vcodec、-acodec。输出文件选项:指定输出文件的相关参数,如格式、编码器等。示例:-f、-vcodec、-acodec。输入文件:需要处理的输入文件路径,可支持多种格式。输出文件:处理后的输出文件路径,也可支持多种格式。常见的操作:转换格式: ffmpeg -i input.mp4 output.avi调整音频码率: ffmpeg -i input.mp4 -ab 128k output.mp4调整视频码率: ffmpeg -i input.mp4 -b:v 1M output.mp4剪切视频: ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 -c:v copy -c:a copy output.mp4拼接视频: ffmpeg -f concat -i filelist.txt -c copy output.mp4压缩视频: ffmpeg -i input.mp4 -vf "scale=iw/2:ih/2" output.mp4

更多实用命令:转换视频分辨率:ffmpeg -i input.mp4 -s 640x360 output.mp4调整视频帧率:ffmpeg -i input.mp4 -r 25 output.mp4提取音频:ffmpeg -i input.mp4 -vn -acodec copy output.aac提取视频:ffmpeg -i input.mp4 -an -vcodec copy output.mp4添加水印:ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=10:10 output.mp4调整音量:ffmpeg -i input.mp4 -af "volume=2" output.mp4

一些注意事项:ffmpeg 可以通过命令行工具操作,也可以使用 API 在代码中控制。在处理大文件时,建议使用多线程进行加速。处理过程中可能会出现一些错误,需要耐心调试。在输入和输出文件选项中,可以使用多个选项进行组合。

视频截图:ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.jpg。该命令可以在第 10 秒的位置截取一张视频截图,并将其保存为 output.jpg 文件。视频旋转:ffmpeg -i input.mp4 -vf "transpose=1" output.mp4。该命令可以将视频逆时针旋转 90 度,并输出为 output.mp4 文件。视频加速或减速:ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4。该命令可以将视频播放速度加倍(0.5 表示减速一倍)。音频转码:ffmpeg -i input.mp3 -acodec aac -b:a 128k output.m4a。该命令可以将 MP3 音频文件转换为 AAC 格式,并设置音频码率为 128kbps。视频加密:ffmpeg -i input.mp4 -codec copy -bsf:v h264_mp4toannexb -f mpegts - | openssl aes-128-cbc -inkey key.txt -iv 0000000000000000 -out output.ts。该命令使用 FFmpeg 将视频文件转换为 MPEG-TS 流,然后使用 OpenSSL 使用 AES-128-CBC 加密该流。加密密钥和向量存储在 key.txt 文件中。视频切片:ffmpeg -i input.mp4 -c copy -hls_time 10 -hls_list_size 0 -f hls output.m3u8。该命令使用 FFmpeg 将输入视频文件切成 10 秒一片的 HLS 流。输出的主 HLS playlist 文件名为 output.m3u8,每个片段的文件名都由 FFmpeg 自动生成。融合音视频:ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4。该命令融合了一个视频文件和一个音频文件,使用 AAC 编码音频。参数 -c:v copy 表示使用和原视频相同的视频编码方式,加快处理速度,而参数 -c:a aac 则指定使用 AAC 编码音频,参数 -strict experimental 则启用新的 FLAC、AAC 等编码器。提取视频片段:ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c:v copy -c:a copy output.mp4。该命令从输入视频文件的第一分钟位置开始提取 30 秒的视频,并将其输出为 output.mp4 文件。参数 -ss 00:01:00 指定起始时间为 1 分钟,参数 -t 00:00:30 指定持续时间为 30 秒。裁剪视频:ffmpeg -i input.mp4 -filter:v "crop=320:240:80:60" output.mp4。该命令裁剪了一个 320x240 像素的视频,从最左边和最上方分别向右和向下各移动了 80 像素和 60 像素,输出为 output.mp4 文件。视频合并:ffmpeg -i "concat:input1.mp4|input2.mp4" -c copy output.mp4。该命令将两个视频文件 input1.mp4 和 input2.mp4 合并成一个 output.mp4 文件,参数 concat 指明使用视频拼接。

视频转gif:ffmpeg -i input.mp4 output.gif。该命令将视频文件 input.mp4 转换为 GIF 格式的动画,输出为 output.gif 文件。调整视频亮度/对比度:ffmpeg -i input.mp4 -vf "eq=brightness=0.3:contrast=1.2" output.mp4。该命令将视频的亮度调整为原来的 0.3 倍,对比度增加 20%。视频倒放:ffmpeg -i input.mp4 -vf reverse -af areverse output.mp4。该命令将视频倒放,并将音频也反转,输出为 output.mp4 文件。滤镜效果:ffmpeg -i input.mp4 -vf "vintage" output.mp4。该命令为视频添加滤镜效果,使其呈现出复古风格。显示音量:ffmpeg -i input.mp4 -filter:a "volumedetect" -f null /dev/null。该命令将输出音频的最大音量、平均音量、峰值和 RMS 值等信息。调整视频播放速度:ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4。该命令将视频的播放速度减半。优化视频:ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 22 -c:a copy output.mp4。该命令使用 libx264 编码器优化视频,使用 slow 预设进行编码,设置输出文件质量系数(CRF)为 22,音频不做改变直接复制。视频加字幕:ffmpeg -i video.mp4 -vf "subtitles=subtitle.srt" -c:a copy output.mp4。该命令可以将 srt 格式的字幕添加到 mp4 格式的视频中,并输出为 output.mp4 文件。参数 -vf 表示使用视频滤镜效果subtitles,参数 subtitles=subtitle.srt 则指定字幕文件路径。视频批量处理:for file in *.mp4; do ffmpeg -i "$file" -vcodec copy -acodec copy -preset slow "${file%.mp4}-output.mp4"; done。该命令可以批量处理当前目录下的所有 mp4 视频文件,将其转换为慢速编码,保存为以 -output.mp4 结尾的文件(例如:video.mp4 -> video-output.mp4)。视频降噪处理:ffmpeg -i input.mp4 -vf "hqdn3d=1.5:1.5:6:6" output.mp4。该命令可以为视频进行降噪处理,参数 hqdn3d 控制效果参数,可根据视频噪声情况自行调整。视频解码器查询:ffmpeg -decoders。该命令可以查询当前版本的ffmpeg支持的所有视频解码器。视频转码器查询:ffmpeg -encoders。该命令可以查询当前版本 ffmpeg 支持的所有视频转码器。快速切换视频码率:ffmpeg -i input.mp4 -b:a 128k -bufsize 32k output.mp4。该命令可以快速调整视频文件输入码率。处理大硬盘文件:ffmpeg -i input.mp4 -c copy -map 0 -segment_time 3600 -f segment output%03d.mp4。该命令可以处理大硬盘文件,将输入文件按每 3600s (1 小时) 进行切割,一次性生成多段文件,文件名格式为 output001.mp4、output002.mp4 等。视频人脸识别:ffmpeg -i input.mp4 -filter:v "select='eq(pict_type,I)',detect=tinyfaces=1:minlift=5:min_conf=0.5" -an -f null -。该命令使用 ffmpeg 人脸识别功能,选取关键帧(I 帧)进行分析,从中检测出画面中的人脸,并输出所在帧的位置和人脸大小信息。旋转视频:ffmpeg -i input.mp4 -vf "transpose=1" output.mp4。该命令可以将视频逆时针旋转 90 度,输出为 output.mp4 文件。调整声音特效:ffmpeg -i input.mp4 -filter:a "chorus=0.7:0.9:55:0.4:0.25:2" output.mp4。该命令可以对视频的音频部分添加声音特效。视频放大/缩小:ffmpeg -i input.mp4 -vf "scale=iw2:ih2" output.mp4。该命令可以将视频分辨率放大 2 倍,输出为 output.mp4 文件;如果要将分辨率缩小一倍,可以将 2 改为 0.5。移除水印:ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=(W-w-10):(H-h-10)" output.mp4。该命令可以将视频中的水印(即 logo.png 文件)移除。视频变速/变调:ffmpeg -i input.mp4 -filter:a "atempo=1.5" -vn output.mp4。该命令可以将视频音频加速 1.5 倍并输出为 MP4 文件。合并音频:ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 output.mp3。该命令可以将两个音频文件 input1.mp3 和 input2.mp3 混合成一个输出文件 output.mp3,参数 inputs=2 表示输入文件数为 2,duration=first 表示输出文件的时长以第一个输入文件为准,dropout_transition=2 表示渐变时间为 2 秒。制作动态图:ffmpeg -i input.mp4 -vf "fps=15,scale=320:-1:flags=lanczos,palettegen" palette.png。该命令用于创建一个颜色调色板 palette.png,它是用于制作 GIF 动画的。视频复制:ffmpeg -i input.mp4 -c copy -map 0 output.mp4。该命令使用 copy 编解码器和 map 选项复制视频文件 input.mp4,并将其输出到 output.mp4 文件中。视频镜像翻转:ffmpeg -i input.mp4 -vf "hflip,vflip" output.mp4。该命令可以将视频进行水平和垂直翻转,输出为 output.mp4 文件。视频删除帧:ffmpeg -i input.mp4 -vf "select='eq(n,0)+eq(n,10)+eq(n,20)'" -vsync 0 output.mp4。该命令可以删除视频文件的第 0、10、20 帧,并输出为 output.mp4。视频分离声音:ffmpeg -i input.mp4 -q:a 0 -map a output.mp3。该命令可以将视频文件 input.mp4 的音频分离出来,并输出为 MP3 文件 output.mp3。视频去背景:ffmpeg -i input.mp4 -filter_complex "chromakey=0x00ff00:0.1:0.2" output.mp4。该命令可以将视频背景透明化,并输出为 output.mp4 文件。视频限制帧数:ffmpeg -i input.mp4 -r 30 output.mp4。该命令可以将视频的帧数限制为 30 fps,并输出为 output.mp4 文件。视频混音:ffmpeg -i input.mp4 -i audio.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[a]" -map 0:v -map "[a]" -c:v copy -ac 2 output.mp4。该命令可以将视频文件 input.mp4 和音频文件 audio.mp3 混音,输出为 output.mp4 文件。视频画中画:ffmpeg -i main.mp4 -i overlay.mp4 -filter_complex "[0:v][1:v]overlay=25:25[out]" -map "[out]" -map 0:a -c:a copy output.mp4。该命令可以将视频文件 overlay.mp4 画在主视频 main.mp4 的左上



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有