s16le是一种无压缩的声音格式,全称为signed 16-bit little-endian,意思是有符号的16位音频数据用小端字节序来存储。这种格式通常用于存储语音、音效等低质量的音频数据,因为它可以提供音频采样的全范围动态范围,从-32768到32767,能够提供足够的音量和质量,同时比其他无损或有损音频格式的文件大小较小。
FFmpeg 的 crop 滤镜可以用于裁剪视频,其使用方法如下:
1、基本语法:
crop=< width >:<height>:<x>:<y>
其中,
<width>
表示裁剪后视频的宽度,
<height>
表示裁剪后视频的高度,
<x>
表示从视频左侧开始裁剪的像素数量,
<y>
表示从视频顶部开始裁剪的像素数量。
例如,下面的命令将从输入的视频文件中裁剪出宽度为 500,高度为 500,左上角坐标为 (100,100) 的视频,并将裁剪后的视频输出为 output.mp4:
ffmpeg -i input.mp4 -vf crop=500:500:100:100 output.mp4
2、输入视频时使用滤镜:
-vf "crop=<width>:<height>:<x>:<y>"
例如,要对输入的视频裁剪掉右侧和底部各 100 像素,可以输入以下命令:
ffmpeg -i input.mp4 -vf crop=in_w-100:in_h-100 output.mp4
在这个命令中,in_w 和 in_h 表示输入视频的宽度和高度。
注意,crop 滤镜也可以用于裁剪音频或图片。如果要裁剪视频中的特定部分,请先使用 FFmpeg 的 trim 滤镜裁剪为所需的范围,然后再使用 crop 滤镜裁剪到所需的大小。例如,trim=start_frame=100:end_frame=200,crop=320:240:100:100 表示从视频的第 100 帧开始裁剪,裁剪到第 200 帧,然后将宽度裁剪为 320 像素,高度为 240 像素,裁剪掉左边 100 像素和顶部 100 像素。
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f sl6le out.pcm
当播放的时候可能会出现错误:
out.pcm: Invalid data found when processing nput
因为你是原始的数据嘛,播放器不知道你采样频率,声道数,这些信息,所以会出错。
生成pcm数据需要指定这些参数,同样播放pcm数据也需要告诉ffplay这些对应的参数。
ffplay -ar 44100 -ac 2 -f s16le out.pcm
滤镜使用的大致流程:拿到解码后的数据帧,过滤,拿到过滤后的数据,编码再输出。
命令使用:
ffmpeg -i input.mp4 -vf <指定滤镜> -c:v libx264 -c:a copy out.mp4
ffmpeg -i input.mp4 -vf crop=500:500:0:0 -c:v libx264 -c:a copy out.mp4
意思就是输入input.mp4文件,裁剪出宽度为 500,高度为 500,左上角坐标为 (0,0) 的视频,视频编码指定为 libx264 ,音频编码保持不变。并将裁剪后的视频输出为 output.mp4