FFmpeg转码mp4
2019-12-02 13:24:39
1211 次阅读
0 个评论
用ffmpeg转码把其他格式转换成mp4 然后做在线播放。
在其他平台各个都可以用但是在iOS上有时候不行 这是因为音频的压制不对。。。iOS下得aac
用这个压制出来的宽1280分辨率 crf25 的mp4
crf越大文件越小,视频质量越差。
压制完如果想再转成m3u8 的ts只要用hls切一下 立马就好了[因为已经是h264的视频了]
-hls_time 设置每一段切片的时长,这里是10秒一个切片。
在其他平台各个都可以用但是在iOS上有时候不行 这是因为音频的压制不对。。。iOS下得aac
ffmpeg -i test.mkv -vcodec libx264 -crf 25 -y -vf "scale=1280:-2" -acodec aac -y a.mp4
用这个压制出来的宽1280分辨率 crf25 的mp4
crf越大文件越小,视频质量越差。
在各个平台下是都能播放的
scale=1280:-2 宽度分辨率是1280 高度随着宽度的改变而共同改变
视频的高度不能为单数 所以是-2
如果是-1 那样有些视频本来的高度变换后可能是单数导致转码失败
旧的h264 都需要偶数尺寸,其他不一定,YUV420P格式的H264如果长宽中有奇数,会出现转码错误。RGB格式的h264则没有这种限制。建议都把要求把宽,高设定为16的倍数
压制完如果想再转成m3u8 的ts只要用hls切一下 立马就好了[因为已经是h264的视频了]
ffmpeg -i a.mp4 -vcodec copy -acodec copy -f hls -hls_time 10 -hls_list_size 0 -y a.m3u8
-hls_time 设置每一段切片的时长,这里是10秒一个切片。
00