ffmpeg简单使用,可用于剪辑视频
#参数解释:
#旧版中的-acodec在新版中写法是-c:a
#旧版中的-vcodec在新版中写法是-c:v
#使用 copy 直接复制音频流时,需要确保 输入的编码格式与输出的格式兼容
-i "URL" 输入流媒体地址或源媒体文件
-c:v copy 复制视频流(不转码)
-c:a copy 复制音频流(不转码)
-c:v libx264 视频转码为 H.264(MP4/MKV)
-c:v libx265 视频转码为 H.265(MP4/MKV)
-c:a aac 音频转码为 AAC(MP4/M4A)
-c:a pcm_s16le 音频转码为 PCM 16-bit(WAV)
-c:a libmp3lame 音频转码为 MP3(MP3)
-vn 禁用视频录制(纯音频输出)
-an 禁用音频录制(纯视频输出)
#将原始音频数据raw格式文件转换为wav格式音频文件,-i 之前的参数是输入文件的,之后的参数输出文件的
# -f s16le -ar 8000 -ac 1 表示: 16位小端、8000Hz、单声道
# -acodec pcm_s16le -ar 8000 -ac 1 表示输出文件编码为16位PCM、采样率为8000Hz、单声道
ffmpeg -f s16le -ar 8000 -ac 1 -i input.raw -acodec pcm_s16le -ar 8000 -ac 1 output.wav
#下载音频媒体流(不转码)
ffmpeg -i "音频流媒体URL" -c:a copy output.mp3
#下载音频流媒体并转成mp3
ffmpeg -i "音频流媒体URL" -c:a libmp3lame output.mp3
#下载视频媒体流(不转码)
ffmpeg -i "视频流媒体URL" -c:v copy -c:a copy output.mp4
#下载视频流媒体并转码为H.264的mp4的视频
ffmpeg -i "视频流媒体URL" -c:v libx264 -c:a aac output.mp4
#只提取视频流媒体中的音频并转码为AAC的mp4的音频
ffmpeg -i "视频流媒体URL" -vn -c:a aac audio.mp4
#只提取视频流媒体中的音频并转码为PCM 16-bit的wav音频
ffmpeg -i "视频流媒体URL" -vn -c:a pcm_s16le audio.wav
#只提取视频流媒体中的音频并保存为mp3,音频质量等级为4
ffmpeg -i "视频流媒体URL" -vn -c:a libmp3lame -q:a 4 output.mp3
#只提取视频流媒体中视频
ffmpeg -i "视频流媒体URL" -c:v copy -an output.mp4
#只提取视频流媒体中视频并转码为H.264的mp4视频
ffmpeg -i "视频流媒体URL" -c:v libx264 -an output.mp4
#只提取视频流媒体中视频并转码为H.265的mkv视频
ffmpeg -i "视频流媒体URL" -c:v libx265 -an output.mkv
#将input.wav文件转换为GSM_MS编码的单声道音频文件output.wav,并指定了比特率为13k
ffmpeg -i input.wav -vn -acodec libgsm_ms -ac 1 -ab 13k -y output.wav
#截取音频(00:00:10开始时间,00:05:30结束时间)
ffmpeg -i input.mp3 -vn -acodec copy -ss 00:00:10 -t 00:05:30 output.mp3
#截取视频(00:00:10开始时间,00:05:30结束时间)
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:05:30 output.mp4
#裁剪视频大小(如:crop=200:100:0:0)
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
# w:所需的裁剪宽度。
# h:所需的裁剪高度。
# x:裁剪区域的左上角水平位置。以像素为单位。
# y:裁剪区域的左上角垂直位置。以像素为单位。
#合并音视频
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4
#调整视频的分辨率、宽高比以及视频编码的质量和性能
ffmpeg -i input.mp4 -vf "scale=1080:1920,setdar=dar=9/16" -c:v libx264 -crf 18 -preset slow -tune film -pix_fmt yuv420p output.mp4
# -vf "scale=1088:1920,setdar=dar=9/16":设置视频过滤器。其中,scale表示缩放输入视频的大小为1088x1920,setdar表示调整视频的显示宽高比为9:16。请注意,视频的显示宽高比(aspect ratio)和像素宽高比(pixel aspect ratio)不同,需要使用不同的选项进行设置。
# -c:v libx264:选择用于编码视频的视频编解码器(video codec)。这里使用了libx264,即x264编码器的开源实现,可以产生高效且质量较高的H.264视频文件。
# -crf 18:设置H.264编码器的质量级别(quality level)。较低的CRF值将产生更高的视频质量,但会增加文件大小;较高的CRF值可以减少文件大小,但可能会降低视频质量。通常推荐设置在15到25之间的值,此处设置为18。
# -preset slow:设置视频编码器的预设(preset)。预设值通常影响编码器的速度和质量之间的权衡。在“slow”预设下,编码器会更加慢一些,但可以产生更好的视频质量。
# -tune film:设置视频编码器的调整模式(tune)。这个选项用于优化编码器的性能,以适应特定的视频内容或应用场景。film模式针对电影、动画和其他具有比较静态的背景的视频进行了优化。
# -pix_fmt yuv420p:设置输出视频文件的像素格式(pixel format)。yuv420p是一种常见的色彩空间表示形式,它使用4:2:0的色度抽样,可以在保持较高视频质量的同时减少文件大小。
