欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ffmpeg 处理视频

程序员文章站 2024-01-16 20:04:58
...

处理视频一般都用ffmpeg, 可以dui视频进行各种处理, 比如

获取视频信息 时间/宽高分辨率/fps/rotate/各种数据
截取视频缩略图 比如youtube上面鼠标放上面看视频缩略图, 就可以用ffmpeg截取
处理视频转向/ 加滤镜,
处理视频格式, 比如ios上传的是mov, 可以转成mp4

这次主要讲的是ffmpeg处理mov转mp4之后, 视频在某些h5页面rotate的问题

ffmpget -i input.mov 获取视频信息
我们发现mov视频里 会有rotate参数
手机正录是rotate 90,
如果手机向右转90du 横屏拍摄的视频 rotate会是 0
如果手机向左转90du 横屏拍摄的视频rotate会是180
倒着用手机拍摄 rotate是270

所以需要我们根据不同的情况 使用ffmpeg 对视频进行rotate
vf 'transpose=1
0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip
0跟3 带了镜面翻转, 所以一般只需要1 或者 2 就够了

        if rotate == '90':
            logging.error('add transpose=1')
            transpose = "-vf 'transpose=1'"
        elif rotate == '180':
            logging.error('add transpose=1, transpose=1')
            transpose = "-vf 'transpose=1, transpose=1'"
        elif rotate == '270':
            logging.error('add transpose=1')
            transpose = "-vf 'transpose=2'"