ffmpeg 将视频转GIF

苏生不惑

偶然在b站看了个关于FFmpeg的视频,总共10p,花一个多小时就可以学完。学完以后还是挺有意思的,这里做个简单的总结。

clipboard.png

先准备一个视频文件,下载到本地就好了。

播放文件

ffplay.exe 996之歌.flv
播放音频 ffplay 1.mp3

获取文件属性

ffprobe 996之歌.flv

转码mkv为mp4

ffmpeg -i example.mkv example.mp4

MP4封装:h264视频编码+aac音频编码

flac转mp3

ffmpeg -i input.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 out.mp3

λ ffmpeg -i   "《something just like this》.mp4" -f mp3 outaudio.mp3
ffmpeg version N-93885-gc61d16cf3b Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.3.1 (GCC) 20190414
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 28.100 / 56. 28.100
  libavcodec     58. 52.101 / 58. 52.101
  libavformat    58. 27.103 / 58. 27.103
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 53.101 /  7. 53.101
  libswscale      5.  4.101 /  5.  4.101
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100

获取单独的视频流,去除音频

ffmpeg -i input.mp4 -vcodec copy -an v.mp4

获取音频

ffmpeg -i input.mp4 -vn -acodec copy out.m4a

合并分离的音频和视频

ffmpeg -i out.m4a -i v.mp4 -c copy out.mp4

截取前10s

ffmpeg -i in.mp3 -ss 00:01:00 -to 00:01:10 -acodec copy out.mp3
ffmpeg -i in.mp3 -ss 00:01:00 -t 10 -acodec copy out.mp3

截取末尾10s

ffmpeg -i in.mp3 -sseof 00:05:00 -t 10 -acodec copy out.mp3
ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy copyts out.mp4 ss在前保证时间戳位置

合并文件

ffmpeg -i "concat:01.mp4|02.mp4|03.mp4" -c copy out.mp4

截图第5s这一帧画面

ffmpeg -i in.mp4 -ss 5 -vframes 1 img.jpg

左上角加水印

ffmpeg -i in.mp4 -i logo.png -filter_complex "overlay=20:20" out.mp4

7.5到8.5截取成GIF

ffmpeg -i in.mp4 -ss 7.5 -to 8.5 -s 640x320 -r 15 out.gif

录屏

ffmpeg -f gdigrab -i desktop in.mp4

保持编码下载m3u8

ffmpeg -i 't.m3u8' -codec copy -y out.ts

截取片段

ffmpeg -y -i 'out.ts' -ss 00:01:00 -to 00:10:00 -vcodec copy -acodec copy '1.ts'

合并ts生成MP4文件

ffmpeg -y -i "concat:1.ts|2.ts" -map_channel 0.1.0 -map_channel 0.1.0 -s 1024x576 -aspect 16:9 -max_muxing_queue_size 1024 "out.mp4"

图片转视频

cat imgs/* |ffmpeg -framerate 1 -i - out.mp4

m3u8 格式转MP4

ffmpeg -i "http://xxxxxx/video/movie.m3u8" -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4

ffprobe 获取一个视频的基本信息

FFmpeg中常用的工具主要是ffmpeg、ffprobe、ffplay,它们分别用作多媒体的编解码工具、内容分析工具和播放器。 ffprobe 获取一个视频的基本信息,并以JSON格式输出

ffprobe video.mp4 -v quiet -print_format json -show_format -show_streams

将 gif 转为 mp4

ffmpeg -f gif -i origin.gif output.mp4

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

成果

我将《在家工作日常》 这个视频转成GIF

clipboard.png

见微博地址

工具

视频字幕
Hardened HLS merger
Some random notes that I found useful while working with ffmpeg
autosub安装使用指南.html)
Final Cut Pro 教程】全系列视频拍摄
牛逼的视频编辑脚本jumpcutter
https://savemedia.com/
https://en.savefrom.net/
http://www.clipconverter.cc/
http://convert2mp3.net/
http://www.downfi.com/video/
https://www.soogif.com/video/
https://tool.gifhome.com/video/
https://weibo.com/5198011111/...
https://ezgif.com/
ACONVERT.COM
压缩图片
Chrome 插件 MakeGIF Video Capture
字幕制作神器「Arctime」
PHP+FFMPEG自动转码H264标准Mp4文件
ffmpeg命令行转压视频
FFprobe使用指南
FFmpeg工具使用及参数说明
每天学习一个命令:ffprobe 查看多媒体信息
ffmpeg 入门笔记
如何使用 FFmpeg 进行视频转码
ffmpeg视音频编解码入门
MP4/FLV格式视频音频在线提取工具

阅读 6.1k

技术分享
PHP,Python 相关
18.9k 声望
1.9k 粉丝
0 条评论
18.9k 声望
1.9k 粉丝
文章目录
宣传栏