FFmpeg实战:Java中的音视频处理命令详解

本文介绍了视频体验优化中的技术挑战,重点讨论了FFmpeg在视频编码(如h264)、时长剪辑、格式转换(如mp4转flv)以及片段分割等方面的实用操作,包括参数解释和实际命令示例。
摘要由CSDN通过智能技术生成

  大家好:

    我是烤鸭。最近在搞视频体验优化脑袋大。再搞能搞过阿b和某音么。

查看基本信息

ffprobe 1.mp4

输出结果:

在这里插入图片描述

Duration: 00:02:33.37, start: 0.000000, bitrate: 3104 kb/s
  Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 2999 kb/s, 30 fps, 30 tbr, 15360 tbn (default)

时长:2分33秒,码率:3104kb/s,编码格式:h264,分辨率 1280*720,帧率 30fps

查看视频头文件大小

ffprobe -v trace -i 1.mp4

在这里插入图片描述

type:'mdat' parent:'root' sz: 59357245 167556 59524793

中间那个值就是头文件大小 167556/1024 = 163KB

视频处理

从 00:00:05 开始,持续5秒。

ffmpeg -ss 00:00:05 -i ./source.mp4 -to 00:00:05  ./target.mp4

从 00:00:05 到 00:00:10。

ffmpeg -ss 00:00:05 -to 00:00:05 -i ./source.mp4 ./target.mp4

mp4转码flv

ffmpeg -y -i ./source.mp4 -crf 20 -vf scale=1080:-1 -c:v libx264 -r 25 -b:v 3000k -b:a 128k ./target-transcode.flv

crf:固定码率因子

vf:视频滤镜

scale:缩放(1080:-1 表示 高度等比例缩放,使得宽度为 1080 像素)

-c:v :编码器(上面表示使用 libx264 编码)

-r:提取图像的频率

-b:v :码率(3000K)

-b:a :音频码率(128K)

在这里插入图片描述

flv转码普通mp4

ffmpeg -y -i .\target-transcode.flv -c:v copy -c:a copy .\target-transcode.mp4

flv转码fragment mp4

ffmpeg -y -i .\target-transcode.flv -c:v copy -c:a copy -strict -2 -movflags frag_keyframe+empty_moov .\target-transcode.mp4

movflags:添加快速启动

frag_keyframe:在每个关键帧都开始一个新的碎片

empty_moov:写入一个空的moov atom到文件开始,而没有任何样品描述

strict:[0,51] (实验参数,2表示 aac音频编码)

视频分割片段

ffmpeg  -y -i .\source.mp4 -c copy -map 0 -f segment -segment_time 10 -segment_list .\playlist.csv -reset_timestamps 1 -movflags frag_keyframe+empty_moov -segment_format mp4 .\segment\output%03d.mp4

segment_time:片段时长

segment_list:输出到文件(playlist.csv)

reset_timestamps:1|0 在每个段都重新开始时间戳。所以每个段都有接近于0的时间戳。这有利于片段的播放,但很多混合器/编码器不支持, 默认为0

在这里插入图片描述

文章参考

https://blog.csdn.net/JineD/article/details/125255153

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烤鸭的世界我们不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值