FFmpeg命令行进行编码解码缩放播放剪切等操作

发布时间:2024年01月15日

编码

编码是将yuv文件转化成某种视频编码格式的操作,命令如下
ffmpeg -pix_fmt <yuv格式> -s <宽>x<高> -i <输入文件> -vcodec <编码的目标格式> <输入文件名>
举个例仔
ffmpeg -pix_fmt yuv420p -s 1920x1080 -i input.yuv -vcodec x264 out.h264

解析每个部分的参数:
-pix_fmt 代表着输入源的格式 yuv420p 代表 i420格式的limit range
如果要使用full range需要使用yuvj420p

-s 后面用x的形式输入对应的宽高

-i 输入的源文件

-vcodec 后面跟着使用的编码器,这里例子用的是x264, 还可以是h263,h263p 等

解码

解码是将编码的文件转化为yuv格式的操作
ffmpeg -i <编码文件名> -c:v rawvideo -pixel_format <输出格式> <解码文件名>
注意的是ffmpeg会根据文件名的后缀判断输入和输出文件的格式,如果是yuv的话需要给定yuv的格式
举个例子
ffmpeg -i test_1080p.h263 -c:v rawvideo -pixel_format yuv420p out.yuv 解码h263到i420
ffmpeg -i test_1080p.h264 -c:v rawvideo -pixel_format yuv420p out.yuv 解码h264到i420

播放

ffmpeg的专用的播放命令,如果是编码码流或者封装码流直接使用ffplay即可
ffplay input.h264
ffplay input.mp4
如果是yuv文件需要输入宽高
ffplay -video_size 1280x720 720p.yuv

缩放

常用将yuv文件从一个分辨率缩放到另一个分辨率的操作
ffmpeg -s:v 1920x1080 -r 25 -i input.yuv -vf scale=960:540 -c:v rawvideo -pix_fmt yuv420p out.yuv

使用-vf 滤镜的 scale 方法,指定缩放对方的分辨率大小

截取

截取某一个文件的特定时间段的视频
ffmpeg -i test.mp4 -vcodec copy -acodec copy -ss 00:00:00 -to 00:39:00 test_cut.mp4 -y

拼接

拼接两个yuv文件, 但是前提必须确保两个yuv文件的分辨率大小是一致的,否则会出错
type a.yuv b.yuv > c.yuv

镇楼

FFMPEG大LOGO镇楼
在这里插入图片描述

文章来源:https://blog.csdn.net/pietian1157/article/details/135590543
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。