ffmpeg将webm格式转换成mp4
ffmpeg將webm格式轉換成mp4
- 起因
- 轉換成HEVC編碼(H.265)
- 轉換成AVC編碼(h.264)
起因
手頭有一部4K風景視頻,辛辛苦苦從油管上下載下來,想要用wallpaper engine做成壁紙,卻發(fā)現(xiàn)格式是webm,vp9編碼,wallpaper engine并不支持,所以想要將格式進行轉換。
怎么說呢,感覺還是ffmpeg更方便,就是參數(shù)很難調。所以在此記錄一下。
轉換成HEVC編碼(H.265)
因為是使用的硬件編碼,硬件編碼教程
ffmpeg -c:v vp9_cuvid -i video.webm -c:v hevc_nvenc -cq 0 video.mp4參數(shù)解釋:
- -c:v :指定編解碼器
- -i : 指定輸入參數(shù)
- vp9_cuvid : 使用nvdia硬件vp9解碼器
- hevc_enc: 使用nvdia硬件h.265編碼器
- -cq : 也就是軟壓的-crf參數(shù)很類似,控制碼率的參數(shù),0最低對應畫質好,數(shù)字越大越差
轉換之后發(fā)現(xiàn)wallpaper engine不支持hevc,麻了,而且碼率輸入進去的有20000K左右,出來只有2000K了,壓得實在太狠了。
轉換成AVC編碼(h.264)
考慮到想要無損編碼,至少碼率不要損失得太嚴重,所以找到了新的解決辦法
根據這篇博客
這次采用的是硬解軟編
輸出直接用CPU編碼了
參數(shù)解釋:
- libx264: 使用軟件h.264編碼器
- -qp : constant quantizer恒定量化器模式,并且畫質為無損的畫質
- -preset : 使用預設參數(shù),preset由快到慢可以分為:ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo這9個等級
- ultralfast預設參數(shù)最快
好家伙,最快的情況下CPU編碼比GPU還快,但是輸出碼率超級無敵大,簡直就是直接往硬盤里面寫數(shù)據罷了,換成fast試過,馬上就慢下來不敵GPU了。
最后委屈求全,手動指定碼率,并且采用h.264硬件編碼
ffmpeg -c:v vp9_cuvid -i video.webm -c:v h264_nvenc -b:v 23000k video.mp4參數(shù)解釋:
- h264_nvenc: 使用硬件h.264編碼器
- -b:v : 控制平均碼率
總算是解決了,即把視頻轉碼了,也沒損失太多碼率保證了畫質,然后可以上傳wallpaper engine了!
參考文章:
ffmpeg:碼率控制模式、編碼方式
ffmpeg實例,比特率碼率(-b)、幀率(-r)和文件大小(-fs)相關操作
ffmpeg實現(xiàn)硬件轉碼(使用FFmpeg調用NVIDIA GPU實現(xiàn)H265轉碼H264)
閱讀3分 | ffmpeg無損轉換mp4到webm可不可行?為你揭曉答案
如何用FFmpeg將影像轉成H.265/HEVC格式?
總結
以上是生活随笔為你收集整理的ffmpeg将webm格式转换成mp4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动静分离-静态资源缓存控制
- 下一篇: 配置maven环境变量cmd控制台提示: