网站建设公司盈利,详情页设计方法,做谷歌网站使用什么统计代码吗,手机app前端开发工具目录
1. Ubuntu#xff08;wsl#xff09;安装 ffmpeg
2. ffmpeg查看指令
3. ffmpeg查看媒体文件信息
4. ffmpeg基础操作指令
5. ffmpeg视频抽帧
5.1 基于时间抽取帧
5.2 两种抽帧方式
5.3 视频流抽帧
5.4 视频批量抽帧
6. ffmpeg更改视频播放速度
7. ffmpeg视频格…目录
1. Ubuntuwsl安装 ffmpeg
2. ffmpeg查看指令
3. ffmpeg查看媒体文件信息
4. ffmpeg基础操作指令
5. ffmpeg视频抽帧
5.1 基于时间抽取帧
5.2 两种抽帧方式
5.3 视频流抽帧
5.4 视频批量抽帧
6. ffmpeg更改视频播放速度
7. ffmpeg视频格式转换
8. ffmpeg视频裁剪
9. ffmpeg图片转视频
10. ffmpeg更改视频分辨率
11. ffmpeg视频旋转
12. ffmpeg视频转码及压缩
13. ffmpeg合并多个视频 1. Ubuntuwsl安装 ffmpeg
更新源sudo apt update
添加源sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
安装ffmpegsudo apt-get install ffmpeg
查看版本ffmpeg -version
2. ffmpeg查看指令
查看ffmpeg支持的编码器ffmpeg configure -encoders
查看ffmpeg支持的解码器ffmpeg configure -decoders
查看ffmpeg支持的通信协议ffmpeg configure -protocols
查看ffmpeg所支持的音视频编码格式、文件封装格式与流媒体传输协议等ffmpeg configure --help
查看ffmpeg的支持格式的列表ffmpeg -formats
获取ffmpeg使用帮助man ffmpeg
3. ffmpeg查看媒体文件信息
ffmpeg -i video_file.mp4 # 查看视频文件信息
ffmpeg -i audio_file.mp3 # 查看音频文件信息
# 使用 -hide_banner 隐藏掉与文件无关的信息ffmpeg本身的信息
ffmpeg -i video_file.mp4 -hide_banner
ffmpeg -i audio_file.mp3 -hide_banner
4. ffmpeg基础操作指令
查看视频总帧数
ffprobe -v error -count_frames -select_streams v:0 -show_entries streamnb_frames -of defaultnokey1:noprint_wrappers1 test.mp4
视频中抽取音频直接加一个 -vn 参数就可以
ffmpeg -i video.mp4 -vn audio.mp3
使用 -an 来获得纯视频 -an 标记会让所有的音频参数无效
ffmpeg -i video_input.mp4 -an -video_output.mp4
jpg转换成png其它格式转换同理
ffmpeg -i ./images/img%5d.jpg ./images_new/img%5d.png 设置视频的屏幕高宽比使用 -aspect 标志设置一个视频文件的屏幕高宽比。通常使用高宽比16:94:316:105:42:21:12:35:12:39:1
ffmpeg -i input.mp4 -aspect 16:9 output.mp4
5. ffmpeg视频抽帧
5.1 基于时间抽取帧
参数说明-ss 设定起始抽帧时间语法:hh:mm:ss-t 表示抽帧持续时间单位为秒-vframes 指定抽取的帧数
ffmpeg -i test.mp4 -r 1 -ss 00:00:05 -f image2 img_%05d.jpeg
ffmpeg -i test.mp4 -r 1 -ss 00:00:05 -vframes 5 -f image2 img_%05d.jpeg
ffmpeg -i test.mp4 -r 1 -t 4 -f image2 img_%05d.jpeg
input seeking。input seeking使用的是key frames所以速度很快参数说明-frame:v 5在video stream上截取5帧。
ffmpeg -ss 00:00:05 -i test.mp4 -frames:v 5 img_%05d.jpg
output seeking。output seeking是逐帧decode直到1分05秒所以速度很慢
ffmpeg -i test.mp4 -ss 00:00:05 -frames:v 5 img_%05d.jpg5.2 两种抽帧方式
方法一该抽帧方式画质较好。参数说明-i 输入文件源文件-f 指定保存图片使用的格式image2 图像解析模式 img%05d.jpg 格式化输出图片-vf设置过滤器fpsfps1/5 表示5s抽一帧fpsfps5 表示1s抽5帧
ffmpeg -i /data/test.mp4 -f image2 -vf fpsfps1/5 -qscale:v 2 /data/img%05d.jpg
方法二该抽帧方式画质稍差。 参数说明-r 指定抽取的帧率即从视频中每秒钟抽取图片的数量1代表每秒抽取一帧表示一秒抽张1/5表示5秒抽一张。
ffmpeg -i test.mp4 -r 1 -f image2 img%05d.jpeg5.3 视频流抽帧 rtsp流抽帧。参数说明-y 如果提示文件已经存在自动执行y对已存在文件进行覆盖-f image2以图片格式保存-r 1帧数每秒截取一帧-r 1/5 表示每5秒抽取一帧img%03d.jpg 格式化命名会生成img001.jpg,img002.jpg
ffmpeg -i rtsp://dxcs:cs123456200.36.43.131:554/Streaming/Channels/1001 -y -f image2 -r 1/1 img%03d.jpg rtsp流抽帧tcp协议推流需要加上: -rtsp_transport tcp
ffmpeg -rtsp_transport tcp -i rtsp://dxcs:cs123456200.36.43.131:554/Streaming/Channels/1001 -y -f image2 -r 1/5 img%03d.jpg 直接保存RTMP视频流到本地
ffmpeg -i rtmp://live.hkstv.hk.lxdns.com/live/hks -c copy ./test1.flv 直接保存RTSP视频流到本地。参数说明-vcodec copy 表示不重新编码在格式未改
ffmpeg -i rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov -vcodec copy -acodec copy ./rtsp1.flv
5.4 视频批量抽帧
视频文件目录 videos 1.mp42.mp4………videos_imgs 为空脚本会以视频文件名自动创建文件夹并保存抽帧图像bash frame.bash批量抽帧shell脚本 frame.bash
#!/usr/bin/env bashvideos_root./videos
save_root./videos_imgs/
for video in $videos_root/*;
doecho $videosave_dir$save_root$(basename $video)if [ ! -d $save_dir ];thenmkdir $save_dirfiffmpeg -i $video -f image2 -vf fpsfps1/5 -qscale:v 2 $save_dir/img%05d.jpg
done
6. ffmpeg更改视频播放速度 双倍视频播放速度
ffmpeg -i test.mp4 -vf setpts0.5*PTS result.mp4 四倍视频播放速度
ffmpeg -i test.mp4 -an -r 50 -filter:v setpts0.25*PTS result.mp4 降低视频播放速度使用一个大于 1 的倍数
ffmpeg -i test.mp4 -vf setpts4.0*PTS output.mp4
7. ffmpeg视频格式转换 转换mp4文件到avi文件
ffmpeg -i test.mp4 output.avi 转换flv格式视频为mpeg格式
ffmpeg -i video.flv video.mpeg 同时指定多个输出后缀输出多个文件
ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg 维持源视频文件的质量使用-qscale 0 参数
ffmpeg -i test.mp4 -qscale 0 output.flv 转换所给定视频input.mp4文件的开始 10 秒到视频 .avi 格式
ffmpeg -i input.mp4 -t 10 output.avi
8. ffmpeg视频裁剪
基于时间进行视频裁剪。参数说明开始时间 (-ss HH:MM:SS), 持续秒数 (-t duration), 结束时间 (-to HH:MM:SS), 和开始秒数 (-s duration)
ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3
ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav
ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264
ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg
ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4
裁剪视频文件为多个部分。参数说明-t 00:00:30 表示从视频的开始到视频的第 30 秒创建一部分视频-ss 00:00:30 为视频的下一部分显示开始时间戳。表示第 2 部分将从第 30 秒开始并将持续到原始视频文件的结尾
ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
基于宽高进行裁剪。参数说明input.mp4 – 源视频文件-filter:v – 表示视频过滤器crop – 表示裁剪过滤器w – 源视频中裁剪的矩形的宽度h – 矩形的高度x – 源视频中裁剪的矩形的 x 坐标 y – 矩形的 y 坐标
ffmpeg -i input.mp4 -filter:v cropw:h:x:y output.mp4
# 想要一个来自视频的位置 (200,150)且具有 640 像素宽度和 480 像素高度的视频剪切视频将影响质量
ffmpeg -i input.mp4 -filter:v crop640:480:200:150 output.mp4
9. ffmpeg图片转视频 规则图片名称转视频。参数说明-r 25 表示每秒播放25帧-b 200k 指定码率为200k将img00001.jpg’, img00002.jpg这种顺序排列的图片文件转制作为视频
ffmpeg -f image2 -i ./images/img%05d.jpg ./result.mp4
ffmpeg -f image2 -i ./images/img%05d.jpg -vcodec libx264 -r 25 -b 200k result.mp4 不规则图片名称转视频。参数说明-framerate 10视频帧率-pattern_type globGlob pattern 模糊匹配-f image2pipe图像管道模糊匹配得到图片名称
ffmpeg -framerate 10 -pattern_type glob -i ./images/*.jpg out.mp4
cat ./images/*.jpg | ffmpeg -f image2pipe -i - output.mp4
10. ffmpeg更改视频分辨率 设置一个视频文件为指定的分辨率
# 使用 -c:a 来保证音频编码是正确的
ffmpeg -i input.mp4 -filter:v scale1280:720 -c:a copy output.mp4
# 参数说明-s 表示设置目标视频文件的分辨率将设置所给定视频文件的分辨率到 1280×720
ffmpeg -i test.mp4 -s 1280:720 -c:a copy output.mp411. ffmpeg视频旋转 将视频顺时针旋转90°
ffmpeg -i test.mp4 -c copy -metadata:s:v:0 rotate90 result.mp4
ffmpeg -i input.avi -vf rotate90*PI/180 上下颠倒视频翻转了180°
ffmpeg -i input.mp4 -vf rotatePI
12. ffmpeg视频转码及压缩 MPEG4编码转成H264编码
ffmpeg -i data.mp4 -strict -2 -vcodec h264 output.mp4 H264编码转成MPEG4编码
ffmpeg -i data.mp4 -strict -2 -vcodec mpeg4 output.mp4 视频裁剪转码及压缩。-crf 参数 (恒定质量因子). 较小的crf 意味着较大的码率同时使用 libx264 编码器也有助于减小文件体积
ffmpeg -i data.mp4 -ss 00:03 -to 10:08 -c:v libx264 -crf 30 result.mp4
ffmpeg -i video_input.mp4 -c:v libx264 -crf 28 video_output.mp4
# 压缩视频文件减小视频文件的大小将损失视频质量。如果 24 太有侵略性可以降低 -crf 值到或更低值
ffmpeg -i test.mp4 -vf scale1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
13. ffmpeg合并多个视频
# 创建包含想接合文件的准确的路径的 join.txt。所有的文件都应该是相同的格式相同的编码格式。
# 所有文件的路径应该逐个列出例如
file /home/myvideos/part1.mp4
file /home/myvideos/part2.mp4
file /home/myvideos/part3.mp4
file /home/myvideos/part4.mp4
ffmpeg -f concat -i join.txt -c copy output.mp4
#若出现错误join.txt: Operation not permitted添加-safe 0
ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4