@
XinLake 我只是好奇, 一個調用 LibVLC 硬解的 app, 和一般能播 4K 格式的 video app, 一樣調用 MediaCodec 而特到硬解以達到省電效果, 為什麼可以說成是「专业的 APP 不耗电」......如果冒犯到了你就不好意思了, 繁體中文是我的母語, 可以最準確表達我的意思, 而你用簡體是你的自由也是這裡的通用語言, 大家看得懂就行。
I am just nobody, 我公開的經驗不多, 只有幾年前發在 hkepc 的文章被人抄到 xda-developers 上的紀錄
https://forum.xda-developers.com/showthread.php?t=2517925我說的 OpenCV 抄 Demo 不是你, 而是一個來面試的, 我自己也在 Android 用過 OpenCV library 實現即時的 Camera 影像分析(遊戲玩法需求), 加上那面試者完全答不上顯示的 demo 的意義在那裡, 正在運算的是甚麼, 我才指出那人是拿著 demo 就說自己懂 OpenCV 的。
Google "LibVLC MediaCodec"第二個搜尋結果就找到了 LibVLC 用 MediaCodec 了......
modules/codec/omxil/mediacodec.h
還有看看 mediacodec_jni.c , 如果你質疑的話, 先看看自己用的 library 裡面有甚麼吧。
LibVLC 好處是包含大量現成的 demuxer, decoders(software 及 MediaCodec 硬解的都有)甚至連 Video/Audio 的輸出介面都很方面的接上, 在 Android 2.2 的年代我用過它來解決當年 Android 不能播 HLS 廣播的問題, 那個年代沒有 MediaCodec, 也沒有好用的 HLS + MPEG-TS java demuxer, ffmpeg wrapper 是可以解碼但要接 video/audio output 比較麻煩, 而 LibVLC 相對是一個能快捷調用的 turnkey 方案, 但弱點是能讓你用 Java 調用的地方不夠。
但是到了現代如果一個簡單的 Player app, 特別 4K 來說格式不多, Video codec 不外乎是 AVC/HEVC, 消費級的終端勉強可以說 10bit 分支也是不同的格式, 而 mp4 encapsulation 幾乎是標配, LibVLC 在我看來是老方案, 在我提出其他方案前, 可以說一下為甚麼要挑 LibVLC 嗎?