
本文共 2083 字,大约阅读时间需要 6 分钟。
- 剪辑视频
ffmpeg -ss 00:00:15 -i input.mkv -vcodec copy -acodec copy -t 00:00:30 out.mkv
ss表示 起始时间戳
-t表示 持续时间,单位为秒
-i表示 源文件名字
-codec copy 表示沿用原来的编码格式
ffmpeg -i test.mp4 -ss 10 -t 15 -codec copy cut.mp4
-ss:start time
-t :duration
参数优化
(1)将-ss, -t 参数放在-i参数之前
ffmpeg -ss 10 -t 15 -i test.mp4 -codec copy cut.mp4
对输入文件执行seek操作,会seek到-ss设置的时间点前面的关键帧上。
时间不精确,但是不会出现黑屏
(2)accurate_seek
剪切时间更加精确
ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy cut.mp4
PS:accurate_seek必须放在-i参数之前
(3)avoid_negative_ts
如果编码格式采用的copy 最好加上 -avoid_negative_ts 1参数
ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy -avoid_negative_ts 1 cut.mp4
- 转码(使用默认参数)
ffmpeg -i input.mkv out.flv
- 循环推流
ffmpeg -stream_loop -1 -re -i /tmp/xxx.flv -vcodec copy -acodec copy -f flv -y rtmp://127.0.0.1:1935/live/test
-re 将输入的读取速度降低到输入的本地帧速率(对于直播很有用)
-stream_loop -1 选项可以指定循环读取视频源的次数,-1为无限循环
- 通过ffmpeg 直接将m3u8转成mp4 命令
ffmpeg -i "http://xxxxxx/video/movie.m3u8" -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4
- 通过GPU实现视频转码命令
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input.mp4 -c:v h264_nvenc -preset slow output.mkvffmpeg -hwaccel cuvid -c:v h264_cuvid -i -c:v h264_nvenc -b:v 2048k -vf scale_npp=1280:-1 -y
-hwaccel cuvid:指定使用cuvid硬件加速
-c:v h264_cuvid:使用h264_cuvid进行视频解码
-c:v h264_nvenc:使用h264_nvenc进行视频编码
-vf scale_npp=1280:-1:指定输出视频的宽高,注意,这里和软解码时使用的-vf scale=x:x不一样
期间使用nvidia-smi
查看显卡状态,能够看到ffmpeg确实是在使用GPU进行转码
- Linux下ffmpeg验证rtmp流命令
ffmpeg -i "rtmp://ip:port/live/stream" -acodec copy -vcodec copy -t 60 -f mp4 -y " test.mp4
- 去除视频黑边,裁剪尺寸:
ffmpeg -i xx.mp4 -vf crop=x1:x2:x3:x4 output.mp4
其中,x1和x2分别是输出的宽和高; x3和x4可不填
- 视频转GIF动图
ffmpeg -ss 00:00:03 -t 3 -i xxx.MP4 -s 640x360 -r 15 output.gif
-ss 00:00:03 表示从第 00 分钟 03 秒开始制作 GIF,支持小数点,如果不加该命令,则从 0 秒开始制作。
-t 3 表示把持续 3 秒的视频转换为 GIF,支持小数点,如果不加该命令,则把整个视频转为 GIF。
-i 表示 invert 的意思吧,转换
s 640x360 是 GIF 的分辨率,分辨率越高体积越大,如果不加该命令,则保持分辨率不变。
-r “15” 表示帧率,网上下载的视频帧率通常为 24,设为 15 效果挺好了,帧率越高体积越大,如果不加该命令,则保持帧率不变
- 图片合并为动图
ffmpeg -threads 2 -r 2 -i %d.jpg 11.gif -y
-threads 2:2 以两个线程进行运行, 加快处理的速度。
-y 对输出文件进行覆盖
-r 2 fps设置为2帧/秒(不同位置有不同含义)
-i %d.jpg 合并的图片文件,图片文件为 1.jpg 2.jpg ….
转载地址:https://blog.csdn.net/weixin_43451928/article/details/114586016 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关于作者
