x264 c++ encode example

有了 libx264 當然要試編一下影片,encode 出的檔案只是為 h264 的 bitstream ,並不是直接封裝成可直接撥放的檔案,還需要一些 wrapper 程序封裝成常見的影片格式如 ( mp4, mkv ...)

不過也可以懶人用 ffmpeg 封裝 XD

 

這基本上就是一連串的繼承寄生關係,階層越高越笨重,也越複雜,這邊就第一步 codec 層來做個小實驗。

  1. codec library: e.g. x264
    • only encoder & decoder for data stream  (h264)
  2. video file container: e.g. libav
    • pack/unpack video file (mp4, avi, mkv)
  3. multi container & codec: e.g. ffmpeg
    • All file formats & all codecs (avi:h264, avi:h265, mkv:h264...)

 

Reference: h264/h265 bit stream 分析工具,可以幫助理解檔案格式

後面附上程式碼

 

Leave a Reply

Your email address will not be published. Required fields are marked *