「App:Library:LVGL:docs:3rd party libraries:FFmpeg support」の版間の差分
提供: robot-jp wiki
ナビゲーションに移動検索に移動 (ページの作成:「https://docs.lvgl.io/8.2/libs/ffmpeg.html __NOTOC__ {| class="wikitable" !英文 !自動翻訳 |- | | |} ---- :App:Library:LVGL:docs:3rd party libraries|戻る…」) |
|||
8行目: | 8行目: | ||
| | | | ||
|} | |} | ||
+ | |||
+ | = FFmpeg support = | ||
+ | FFmpeg A complete, cross-platform solution to record, convert and stream audio and video. | ||
+ | |||
+ | == Install FFmpeg == | ||
+ | |||
+ | * Download FFmpeg from here | ||
+ | * <code>./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib</code> | ||
+ | * <code>make</code> | ||
+ | * <code>sudo make install</code> | ||
+ | |||
+ | == Add FFmpeg to your project == | ||
+ | |||
+ | * Add library: <code>FFmpeg</code> (for GCC: <code>-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread</code>) | ||
+ | |||
+ | == Usage == | ||
+ | Enable <code>LV_USE_FFMPEG</code> in <code>lv_conf.h</code>. | ||
+ | |||
+ | See the examples below. | ||
+ | |||
+ | Note that, the FFmpeg extension doesn't use LVGL's file system. You can simply pass the path to the image or video as usual on your operating system or platform. | ||
+ | |||
+ | == Example == | ||
+ | |||
+ | === Decode image === | ||
+ | [[ファイル:LVGL docs 3rdPartyLibs FFmpeg 01.png|サムネイル]] | ||
+ | |||
+ | |||
+ | https://docs.lvgl.io/8.2/libs/ffmpeg.html#decode-image | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === Decode video === | ||
+ | https://docs.lvgl.io/8.2/libs/ffmpeg.html#decode-video | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == API == | ||
+ | Enums | ||
+ | |||
+ | ; <span id="_CPPv322lv_ffmpeg_player_cmd_t"></span><span id="_CPPv222lv_ffmpeg_player_cmd_t"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03" class="target"></span>enum lv_ffmpeg_player_cmd_t[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_cmd_t] <span id="_CPPv322lv_ffmpeg_player_cmd_t"></span><span id="_CPPv222lv_ffmpeg_player_cmd_t"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03" class="target"></span> | ||
+ | : ''Values:'' | ||
+ | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a3974e4171ff0f33aa02fe99cba7bfe59" class="target"></span>enumerator L[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_cmd_t]V_FFMPEG_PLAYER_CMD_START[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a3974e4171ff0f33aa02fe99cba7bfe59" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03ac2fb5bdc35bb424a136ffcc85d7d181b" class="target"></span>enumerator LV_FFMPEG_PLAYER[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_STARTE]_CMD_STOP[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03ac2fb5bdc35bb424a136ffcc85d7d181b" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03ac6b90ccf1b49220ed98cd8ac9fb7cf26" class="target"></span>enumerator LV_FFMPEG_PLAYE[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t25LV_FFMPEG_PLAYER_CMD_STOPE]R_CMD_PAUSE[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03ac6b90ccf1b49220ed98cd8ac9fb7cf26" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a1819d17160123ca945ae2e2153d8f49d" class="target"></span>enumerator LV_FFMPEG_PLAYER[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26LV_FFMPEG_PLAYER_CMD_PAUSEE]_CMD_RESUME[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a1819d17160123ca945ae2e2153d8f49d" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a86a9ab5a0475b1a547d1d4f0f5db51ce" class="target"></span>enumerator _LV_FFMPEG_PLAYER[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t27LV_FFMPEG_PLAYER_CMD_RESUMEE]_CMD_LAST[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE] <span id="_CPPv3N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE"></span><span id="_CPPv2N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE"></span><span id="lv__ffmpeg_8h_1a6b99f7ef5a3c69662a18f4af6822ae03a86a9ab5a0475b1a547d1d4f0f5db51ce" class="target"></span> | ||
+ | :: | ||
+ | |||
+ | Functions | ||
+ | |||
+ | ; <span id="_CPPv314lv_ffmpeg_initv"></span><span id="_CPPv214lv_ffmpeg_initv"></span><span id="lv_ffmpeg_init__void"></span><span id="lv__ffmpeg_8h_1afc79954212a779bb104b65e1e6427239" class="target"></span>void lv_ffmpeg[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N22lv_ffmpeg_player_cmd_t26_LV_FFMPEG_PLAYER_CMD_LASTE]_init(void)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv414lv_ffmpeg_initv] <span id="_CPPv314lv_ffmpeg_initv"></span><span id="_CPPv214lv_ffmpeg_initv"></span><span id="lv_ffmpeg_init__void"></span><span id="lv__ffmpeg_8h_1afc79954212a779bb104b65e1e6427239" class="target"></span> | ||
+ | : Register FFMPEG image[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv414lv_ffmpeg_initv] decoder | ||
+ | |||
+ | ; <span id="_CPPv323lv_ffmpeg_get_frame_numPKc"></span><span id="_CPPv223lv_ffmpeg_get_frame_numPKc"></span><span id="lv_ffmpeg_get_frame_num__cCP"></span><span id="lv__ffmpeg_8h_1ab56507f7daa908a049d4118db3592eea" class="target"></span>int lv_ffmpeg_get_frame_num(const char *path)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_get_frame_numPKc] <span id="_CPPv323lv_ffmpeg_get_frame_numPKc"></span><span id="_CPPv223lv_ffmpeg_get_frame_numPKc"></span><span id="lv_ffmpeg_get_frame_num__cCP"></span><span id="lv__ffmpeg_8h_1ab56507f7daa908a049d4118db3592eea" class="target"></span> | ||
+ | : Get the number of frames contained in the[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_get_frame_numPKc] file | ||
+ | :; Parameters | ||
+ | :: path -- image or video file name | ||
+ | :; Returns | ||
+ | :: Number of frames, less than 0 means failed | ||
+ | |||
+ | ; <span id="_CPPv323lv_ffmpeg_player_createP8lv_obj_t"></span><span id="_CPPv223lv_ffmpeg_player_createP8lv_obj_t"></span><span id="lv_ffmpeg_player_create__lv_obj_tP"></span><span id="lv__ffmpeg_8h_1aafbf8ce148637731ed6c2b9a78eb051d" class="target"></span>lv_obj_t *lv_ffmpeg_player_create(lv_obj_t *parent)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_player_createP8lv_obj_t] <span id="_CPPv323lv_ffmpeg_player_createP8lv_obj_t"></span><span id="_CPPv223lv_ffmpeg_player_createP8lv_obj_t"></span><span id="lv_ffmpeg_player_create__lv_obj_tP"></span><span id="lv__ffmpeg_8h_1aafbf8ce148637731ed6c2b9a78eb051d" class="target"></span> | ||
+ | : Create ffmpeg_player object | ||
+ | :; Parameters | ||
+ | :: pa[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_player_createP8lv_obj_t]rent -- pointer to an object, it will be the parent of the new player | ||
+ | :; Returns | ||
+ | :: pointer to the created ffmpeg_player | ||
+ | |||
+ | ; <span id="_CPPv324lv_ffmpeg_player_set_srcP8lv_obj_tPKc"></span><span id="_CPPv224lv_ffmpeg_player_set_srcP8lv_obj_tPKc"></span><span id="lv_ffmpeg_player_set_src__lv_obj_tP.cCP"></span><span id="lv__ffmpeg_8h_1a1fad8be1019b63dd587ef5e71bfcc440" class="target"></span>lv_res_t lv_ffmpeg_player_set_src(lv_obj_t *obj, const char *path)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_srcP8lv_obj_tPKc] <span id="_CPPv324lv_ffmpeg_player_set_srcP8lv_obj_tPKc"></span><span id="_CPPv224lv_ffmpeg_player_set_srcP8lv_obj_tPKc"></span><span id="lv_ffmpeg_player_set_src__lv_obj_tP.cCP"></span><span id="lv__ffmpeg_8h_1a1fad8be1019b63dd587ef5e71bfcc440" class="target"></span> | ||
+ | : Set the path of the file to be played | ||
+ | :; Parameters | ||
+ | ::* obj -[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_srcP8lv_obj_tPKc]- pointer to a ffmpeg_player object | ||
+ | ::* path -- video file path | ||
+ | :; Returns | ||
+ | :: LV_RES_OK: no error; LV_RES_INV: can't get the info. | ||
+ | |||
+ | ; <span id="_CPPv324lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t"></span><span id="_CPPv224lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t"></span><span id="lv_ffmpeg_player_set_cmd__lv_obj_tP.lv_ffmpeg_player_cmd_t"></span><span id="lv__ffmpeg_8h_1ab0c15e9a56343449fbfd8fb241982e2f" class="target"></span>void lv_ffmpeg_player_set_cmd(lv_obj_t *obj, lv_ffmpeg_player_cmd_t cmd)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t] <span id="_CPPv324lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t"></span><span id="_CPPv224lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t"></span><span id="lv_ffmpeg_player_set_cmd__lv_obj_tP.lv_ffmpeg_player_cmd_t"></span><span id="lv__ffmpeg_8h_1ab0c15e9a56343449fbfd8fb241982e2f" class="target"></span> | ||
+ | : Set command control video player | ||
+ | :; Parameters | ||
+ | ::* obj -- pointer t[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_cmdP8lv_obj_t22lv_ffmpeg_player_cmd_t]o a ffmpeg_player object | ||
+ | ::* cmd -- control commands | ||
+ | |||
+ | ; <span id="_CPPv333lv_ffmpeg_player_set_auto_restartP8lv_obj_tb"></span><span id="_CPPv233lv_ffmpeg_player_set_auto_restartP8lv_obj_tb"></span><span id="lv_ffmpeg_player_set_auto_restart__lv_obj_tP.b"></span><span id="lv__ffmpeg_8h_1aa08e96785ec2989358fa6a2c8917dd65" class="target"></span>void lv_ffmpeg_player_set_auto_restart(lv_obj_t *obj, bool en)[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv433lv_ffmpeg_player_set_auto_restartP8lv_obj_tb] <span id="_CPPv333lv_ffmpeg_player_set_auto_restartP8lv_obj_tb"></span><span id="_CPPv233lv_ffmpeg_player_set_auto_restartP8lv_obj_tb"></span><span id="lv_ffmpeg_player_set_auto_restart__lv_obj_tP.b"></span><span id="lv__ffmpeg_8h_1aa08e96785ec2989358fa6a2c8917dd65" class="target"></span> | ||
+ | : Set the video to automatically replay | ||
+ | :; Parameters | ||
+ | ::* o[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv433lv_ffmpeg_player_set_auto_restartP8lv_obj_tb]bj -- pointer to a ffmpeg_player object | ||
+ | ::* en -- true: enable the auto restart | ||
+ | |||
+ | Variables | ||
+ | |||
+ | ; <span id="_CPPv322lv_ffmpeg_player_class"></span><span id="_CPPv222lv_ffmpeg_player_class"></span><span id="lv_ffmpeg_player_class__lv_obj_class_tC"></span><span id="lv__ffmpeg_8h_1a43ad7afa4eed61882d7aae07b06c2745" class="target"></span>const lv_obj_class_t lv_ffmpeg_player_class[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_class] <span id="_CPPv322lv_ffmpeg_player_class"></span><span id="_CPPv222lv_ffmpeg_player_class"></span><span id="lv_ffmpeg_player_class__lv_obj_class_tC"></span><span id="lv__ffmpeg_8h_1a43ad7afa4eed61882d7aae07b06c2745" class="target"></span> | ||
+ | : | ||
+ | |||
+ | ; <span id="_CPPv318lv_ffmpeg_player_t"></span><span id="_CPPv218lv_ffmpeg_player_t"></span><span id="lv_ffmpeg_player_t"></span><span id="structlv__ffmpeg__player__t" class="target"></span>struct lv_ffmpeg_player_t[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv418lv_ffmpeg_player_t] <span id="_CPPv318lv_ffmpeg_player_t"></span><span id="_CPPv218lv_ffmpeg_player_t"></span><span id="lv_ffmpeg_player_t"></span><span id="structlv__ffmpeg__player__t" class="target"></span> | ||
+ | : Pu[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_class]blic Members | ||
+ | :; <span id="_CPPv3N18lv_ffmpeg_player_t3imgE"></span><span id="_CPPv2N18lv_ffmpeg_player_t3imgE"></span><span id="lv_ffmpeg_player_t::img__lv_img_t"></span><span id="structlv__ffmpeg__player__t_1a5fc9a7b172bae6264bebca8f7907fb50" class="target"></span>lv_[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv418lv_ffmpeg_player_t]img_t img[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t3imgE] <span id="_CPPv3N18lv_ffmpeg_player_t3imgE"></span><span id="_CPPv2N18lv_ffmpeg_player_t3imgE"></span><span id="lv_ffmpeg_player_t::img__lv_img_t"></span><span id="structlv__ffmpeg__player__t_1a5fc9a7b172bae6264bebca8f7907fb50" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N18lv_ffmpeg_player_t5timerE"></span><span id="_CPPv2N18lv_ffmpeg_player_t5timerE"></span><span id="lv_ffmpeg_player_t::timer__lv_timer_tP"></span><span id="structlv__ffmpeg__player__t_1ac2890dc7a7012d353e3ed5261f9bcaec" class="target"></span>lv[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t3imgE]_timer_t *timer[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t5timerE] <span id="_CPPv3N18lv_ffmpeg_player_t5timerE"></span><span id="_CPPv2N18lv_ffmpeg_player_t5timerE"></span><span id="lv_ffmpeg_player_t::timer__lv_timer_tP"></span><span id="structlv__ffmpeg__player__t_1ac2890dc7a7012d353e3ed5261f9bcaec" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N18lv_ffmpeg_player_t6imgdscE"></span><span id="_CPPv2N18lv_ffmpeg_player_t6imgdscE"></span><span id="lv_ffmpeg_player_t::imgdsc__lv_img_dsc_t"></span><span id="structlv__ffmpeg__player__t_1a952543edb55aa056d0ace73123ced141" class="target"></span>lv_img_[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t5timerE]dsc_t imgdsc[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t6imgdscE] <span id="_CPPv3N18lv_ffmpeg_player_t6imgdscE"></span><span id="_CPPv2N18lv_ffmpeg_player_t6imgdscE"></span><span id="lv_ffmpeg_player_t::imgdsc__lv_img_dsc_t"></span><span id="structlv__ffmpeg__player__t_1a952543edb55aa056d0ace73123ced141" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N18lv_ffmpeg_player_t12auto_restartE"></span><span id="_CPPv2N18lv_ffmpeg_player_t12auto_restartE"></span><span id="lv_ffmpeg_player_t::auto_restart__b"></span><span id="structlv__ffmpeg__player__t_1ae9efd4095b8d9740e9eb3598be8e7478" class="target"></span>bool auto[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t6imgdscE]_restart[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t12auto_restartE] <span id="_CPPv3N18lv_ffmpeg_player_t12auto_restartE"></span><span id="_CPPv2N18lv_ffmpeg_player_t12auto_restartE"></span><span id="lv_ffmpeg_player_t::auto_restart__b"></span><span id="structlv__ffmpeg__player__t_1ae9efd4095b8d9740e9eb3598be8e7478" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N18lv_ffmpeg_player_t10ffmpeg_ctxE"></span><span id="_CPPv2N18lv_ffmpeg_player_t10ffmpeg_ctxE"></span><span id="lv_ffmpeg_player_t::ffmpeg_ctx__ffmpeg_context_sP"></span><span id="structlv__ffmpeg__player__t_1a1c0af404947bcc90f15893162601a36c" class="target"></span>struct [https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv4N18lv_ffmpeg_player_t12auto_restartE]ffmpeg_context_s *ffmpeg_ctx | ||
+ | |||
2022年6月28日 (火) 12:47時点における版
https://docs.lvgl.io/8.2/libs/ffmpeg.html
英文 | 自動翻訳 |
---|---|
FFmpeg support
FFmpeg A complete, cross-platform solution to record, convert and stream audio and video.
Install FFmpeg
- Download FFmpeg from here
./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib
make
sudo make install
Add FFmpeg to your project
- Add library:
FFmpeg
(for GCC:-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread
)
Usage
Enable LV_USE_FFMPEG
in lv_conf.h
.
See the examples below.
Note that, the FFmpeg extension doesn't use LVGL's file system. You can simply pass the path to the image or video as usual on your operating system or platform.
Example
Decode image
https://docs.lvgl.io/8.2/libs/ffmpeg.html#decode-image
Decode video
https://docs.lvgl.io/8.2/libs/ffmpeg.html#decode-video
API
Enums
- enum lv_ffmpeg_player_cmd_t[1]
- Values:
Functions
- int lv_ffmpeg_get_frame_num(const char *path)[15]
- Get the number of frames contained in the[16] file
- Parameters
- path -- image or video file name
- Returns
- Number of frames, less than 0 means failed
- lv_obj_t *lv_ffmpeg_player_create(lv_obj_t *parent)[17]
- Create ffmpeg_player object
- Parameters
- pa[18]rent -- pointer to an object, it will be the parent of the new player
- Returns
- pointer to the created ffmpeg_player
- lv_res_t lv_ffmpeg_player_set_src(lv_obj_t *obj, const char *path)[19]
- Set the path of the file to be played
- Parameters
-
- obj -[20]- pointer to a ffmpeg_player object
- path -- video file path
- Returns
- LV_RES_OK: no error; LV_RES_INV: can't get the info.
- void lv_ffmpeg_player_set_cmd(lv_obj_t *obj, lv_ffmpeg_player_cmd_t cmd)[21]
- Set command control video player
- Parameters
-
- obj -- pointer t[22]o a ffmpeg_player object
- cmd -- control commands
- void lv_ffmpeg_player_set_auto_restart(lv_obj_t *obj, bool en)[23]
- Set the video to automatically replay
- Parameters
-
- o[24]bj -- pointer to a ffmpeg_player object
- en -- true: enable the auto restart
Variables
- const lv_obj_class_t lv_ffmpeg_player_class[25]