Omxplayer:
–win sample:
omxplayer abc.mp4 –win 960,0,1920,540 –loop
960 = start point of screen x (左上角)
0 = start point of screen y
1920 = video end point of x(右下角)
540 = video end point of y
–crop sample:
omxplayer EVA.mp4 –crop 640,360,1280,720
640: start point of Video X
360: start point of Video Y
1280: end point of Video X
720 : end point of Video Y
FFmpeg:
eg:
ffmpeg -i abc.mp4 -filter:v “crop=80:60:200:100” -c:a copy out.mp4
得出的out.mp4屬性如下:
width = 80
height = 60
由影片的x offset 200px 及 y offset 100px開始crop.
eg2:
ffmpeg -i in.mp4 -filter:v “crop=in_w:in_h-40” -c:a copy out.mp4
out.mp4的底頂都會被切去20px
FFMPEG command:
ffmpeg -i 1.mp4 -r 10 -pix_fmt yuv420p -vcodec libx264 -preset veryslow -profile:v baseline -crf 23 -acodec aac -b:a 32k -strict -5 147fss.mp4
# -i 输入的视频文件
# -r 每一秒的帧数,一秒10帧大概就是人眼的速度
# -pix_fmt 设置视频颜色空间 yuv420p网络传输用的颜色空间 ffmpeg -pix_fmts可以查看有哪些颜色空间选择
# -vcodec 软件编码器,通用稳定
# -preset 编码机预设 编码机预设越高占用CPU越大 有十个参数可选 ultrafast superfast veryfast(录制视频选用) faster fast medium(默认) slow slower veryslow(压制视频时一般选用) pacebo
# -profile:v 压缩比的配置 越往左边压缩的越厉害,体积越小 baseline(实时通信领域一般选用,画面损失越大) Extended Main(流媒体选用) High(超清视频) High 10 High 4:2:2 High 4:4:4(Predictive)
# -level:v 对编码机的规范和限制针对不通的使用场景来操作,也就是不同分辨率设置不同的值
# -crf 码率控制模式 用于对画面有要求,对文件大小无关紧要的场景 0-51都可以选择 0为无损 一般设置18 – 28之间 大于28画面损失严重 # -acodec 设置音频编码器
https://qastack.cn/unix/28803/how-can-i-reduce-a-videos-size-with-ffmpeg
https://blog.csdn.net/u011913612/article/details/53409428
我测试了该问题的其他大多数建议答案。测试数据结论如下。这些是我测试过的建议答案:
(BR)使用以下方法修改比特率:
ffmpeg -i $infile -b $bitrate $newoutfile
(CR)使用以下方法改变恒定速率因子:
ffmpeg -i $infile -vcodec libx264 -crf 23 $outfile
(SZ)使用以下方法更改视频屏幕大小(例如,将其更改为像素大小的一半):
ffmpeg -i $infile -vf "scale=iw/2:ih/2" $outfile
(BL)使用以下命令将H.264配置文件更改为“基准”:
ffmpeg -i $infile -profile:v baseline $outfile
(DF)使用默认的ffmpeg处理,方法是:
ffmpeg -i $infile $outfile
数据
- “尺寸”-转换后的视频相对于原始像素的百分比像素大小。
- “比特率”-原始视频和转换后的视频的比特率。
- “定义”-视频的像素大小。
- “转换”-转换视频的时间(以秒为单位)。
我使用提出的方法计算了(BL)的目标比特率。
===文件A-节点如何帮助推进Angular-Fnbixa7Ts6M.mkv ===
original BR CR SZ BL DF
-------- --- -- -- -- --
size 64152 kb 214% 76% 40% 83% 76%
bitrate 411 kb/s 883 313 165 342 313
definition 1920x1080 1920x1080 1920x1080 960x540 1920x1080 1920x1080
convert -- 648 509 225 427 510
===文件B-将GraphQL与角度一起使用_作者-Lee Costello-OGyFxqt5INw.mkv ===
original BR CR SZ BL DF
-------- --- -- -- -- --
size 410301 kb 33% 109% 28% 143% 109%
bitrate 2687 kb/s 880 2920 764 3843 2920
definition 3840x2160 3840x2160 3840x2160 1920x1080 3840x2160 3840x2160
convert -- 2307 3188 1116 2646 3278
结论
- (SZ)方法无疑是最快的方法。它快了2倍到4倍。对于高清视频,这可能是一个很大的问题,因为所有其他方法的转换时间都比视频的实际长度长!例如,(CR)方法花费了53分钟来转换21分钟的视频。
- 如果视频的分辨率大于要显示的屏幕的分辨率,则(SZ)方法绝对是最佳方法。例如,如果您的手机只能显示1080p图片,则向其发送3840×2160的视频只是浪费。最好将其大小减半至1080p。
- 一些建议的答案实际上增加了某些视频的大小。例如,(BR)方法将1080p样本的大小增加了一倍以上。但是,它确实使2160p尺寸缩小了三分之一。对于高清样本,(CR),(BL)和(DF)方法都增加了视频的大小。
正确(或最佳)答案
始终最好首先将分辨率降低到目标显示器支持的最大分辨率。
如果要进一步减小文件大小,则取决于个人选择。您可以减少信息内容或增加压缩率。
- 如果不是您所关心的问题,则可以进一步降低分辨率。
- 如果视频不包含快速动作场景,则可能需要降低帧频。
- 如果您拥有强大的处理器,而只有空间是唯一的问题,则可以提高压缩率。
- 比特率是多种因素的组合。因此,仅告诉ffmpeg降低比特率可能不会给您想要的结果。
- 降低信息含量的另一种方法是降低色彩深度。如何进行此操作尚未讨论。
留言