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降低比特率可能不会给您想要的结果。
  • 降低信息含量的另一种方法是降低色彩深度。如何进行此操作尚未讨论。


最後修改日期: 2020 年 10 月 8 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。