音视频开发相关的一些东西

2018 / 03 / 16

视频转换ffmpeg

转码

ffmpeg -y -i file -c:v libx264 -c:a aac -pix_fmt yuv420p -preset fast -max_muxing_queue_size 1024 newFile

改变分辨率

  • ntsc 720x480
  • hd720 1280x720
  • hd1080 1920x1080
ffmpeg -y -i 7minutes_trans_480.mp4 -s 320:240 -c:a copy 7minutes_240.mp4

ffmpeg -i 7minutes_trans_480.mp4 -vf scale=320:240 -c:a copy 7minutes_240.mp4

水印

  • 左上角 overlay参数为 overlay=0:0
  • 右上角为 overlay= main_w-overlay_w:0
  • 右下角为 overlay= main_w-overlay_w:main_h-overlay_h
  • 左下角为 overlay=0: main_h-overlay_h
ffmpeg -i demo.avi -i watermark.png -filter_complex "overlay=main_w-overlay_w-10:10" -y keeley.mp4

旋转

查询旋转

ffmpeg -i IMG_1821.MOV 2>&1 | grep rotate

旋转

编码旋转
rem For the transpose parameter you can pass:

rem 0 = 90逆时针并且垂直翻转(default)
rem 1 = 90顺时针
rem 2 = 90度逆时针
rem 3 = 90顺时针并且垂直翻转

rem To rotate 180 degrees, instead use "transpose=2,transpose=2"

rem Using -codec:a copy will simply copy the audio instead of reencoding it.

ffmpeg -i in.mp4 -vf "transpose=1" -codec:a copy out.mp4
不编码旋转
ffmpeg -i IMG_1821.MOV -metadata:s:v rotate="0" -codec copy output.mp4

提取缩略图

ffmpeg -y -i WeChatSight1.mp4 -vf fps=1/1 -vsync vfr -vframes 8 -c:v mjpeg WeChatSight1_mp4_%d.jpg
ffmpeg -skip_frame nokey -i "keeley-0807.mp4" -vsync 0 -vframes 9 -c:v mjpeg keeley-0807/thumb_%d.jpg

合成缩略图

ffmpeg -y -i temp.mp4 -vf "fps=1/2,scale=iw/4:-1,tile=10x10" -an %d.png

http://einverne.github.io/post/2015/12/ffmpeg-first.html
https://lars.st0ne.at/blog/html5+video+in+IE11+-+size+does+matter
https://trac.ffmpeg.org/wiki/Encode/H.264
http://www.cnblogs.com/tinywan/p/6404411.html
http://www.cnblogs.com/tinywan/p/7877738.html
http://blog.csdn.net/leixiaohua1020/article/category/1360795
https://www.jianshu.com/p/053665062f22
https://support.google.com/youtube/answer/2853702?hl=zh-Hans
```