「App:Library:LVGL:docs:3rd party libraries:FFmpeg support」の版間の差分

提供: robot-jp wiki
ナビゲーションに移動検索に移動
 
(同じ利用者による、間の5版が非表示)
1行目: 1行目:
 
https://docs.lvgl.io/8.2/libs/ffmpeg.html
 
https://docs.lvgl.io/8.2/libs/ffmpeg.html
 
__NOTOC__
 
__NOTOC__
 +
= FFmpeg support =
 
{| class="wikitable"
 
{| class="wikitable"
 
!英文
 
!英文
6行目: 7行目:
 
|-
 
|-
 
|
 
|
|
+
FFmpeg A complete, cross-platform solution to record, convert and stream audio and video.
 +
|FFmpeg オーディオとビデオの録音、変換、ストリーミングを行うための完全なクロスプラットフォームソリューションです。
 
|}
 
|}
 +
:[[App:Library:LVGL:docs:3rd party libraries|戻る : Previous]]
  
= FFmpeg support =
 
FFmpeg A complete, cross-platform solution to record, convert and stream audio and video.
 
  
 
== Install FFmpeg ==
 
== Install FFmpeg ==
 
+
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 
* Download FFmpeg from here
 
* Download FFmpeg from here
 +
* <code style="color: #bb0000;">./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 style="color: #bb0000;">make</code>
 +
* <code style="color: #bb0000;">sudo make install</code>
 +
|
 +
* ここからFFmpegをダウンロード
 
* <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>./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>make</code>
 
* <code>sudo make install</code>
 
* <code>sudo make install</code>
 +
|}
 +
:[[App:Library:LVGL:docs:3rd party libraries|戻る : Previous]]
 +
  
 
== Add FFmpeg to your project ==
 
== Add FFmpeg to your project ==
 +
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 +
* Add library: <code style="color: #bb0000;">FFmpeg</code> (for GCC: <code style="color: #bb0000;">-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread</code>)
 +
|
 +
* ライブラリを追加: <code>FFmpeg</code>(GCCの場合<code>-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread</code>:)
 +
|}
 +
:[[App:Library:LVGL:docs:3rd party libraries|戻る : Previous]]
  
* Add library: <code>FFmpeg</code> (for GCC: <code>-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread</code>)
 
  
 
== Usage ==
 
== Usage ==
Enable <code>LV_USE_FFMPEG</code> in <code>lv_conf.h</code>.
+
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 +
Enable <code style="color: #bb0000;">LV_USE_FFMPEG</code> in <code style="color: #bb0000;">lv_conf.h</code>.
  
 
See the examples below.
 
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.
 
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.
 +
|<code style="color: #bb0000;">lv_conf.h</code> で <code style="color: #bb0000;">LV_USE_FFMPEG</code> を有効化します。
  
== Example ==
+
以下の例を参照してください。
  
=== Decode image ===
+
なお、FFmpeg拡張は、LVGLのファイルシステムを使用しません。画像やビデオのパスを渡すだけで、OSやプラットフォームは通常通りです。
[[ファイル:LVGL docs 3rdPartyLibs FFmpeg 01.png|サムネイル]]
+
|}
 +
:[[App:Library:LVGL:docs:3rd party libraries|戻る : Previous]]
  
  
https://docs.lvgl.io/8.2/libs/ffmpeg.html#decode-image
+
== Example ==
 
+
{| class="wikitable"
----
+
!英文
 
+
!自動翻訳
 +
|-
 +
|
 +
=== Decode image ===
 +
[[file:LVGL docs 3rdPartyLibs FFmpeg 01.png|link=https://docs.lvgl.io/8.2/libs/ffmpeg.html#decode-image]]
 +
|
 +
|-
 +
|
 
=== Decode video ===
 
=== Decode video ===
https://docs.lvgl.io/8.2/libs/ffmpeg.html#decode-video
+
[[file:LVGL docs 3rdPartyLibs FFmpeg 01.png|link=https://docs.lvgl.io/8.2/libs/ffmpeg.html#decode-video]]
 +
|
 +
|}
 +
:[[App:Library:LVGL:docs:3rd party libraries|戻る : Previous]]
  
----
 
  
 
== API ==
 
== API ==
 +
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 
Enums
 
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>
+
<span style="background-color:#e7f2fa;color:#2980b9;">enum lv_ffmpeg_player_cmd_t </span>
 
: ''Values:''
 
: ''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 style="background-color: #eeeeee;">enumerator LV_FFMPEG_PLAYER_CMD_START </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 style="background-color: #eeeeee;">enumerator LV_FFMPEG_PLAYER_CMD_STOP </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 style="background-color: #eeeeee;">enumerator LV_FFMPEG_PLAYER_CMD_PAUSE </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 style="background-color: #eeeeee;">enumerator LV_FFMPEG_PLAYER_CMD_RESUME </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>
+
:; <span style="background-color: #eeeeee;">enumerator _LV_FFMPEG_PLAYER_CMD_LAST </span>
 
::
 
::
  
 
Functions
 
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>
+
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_ffmpeg_init(void) </span>
: Register FFMPEG image[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv414lv_ffmpeg_initv] decoder
+
: Register FFMPEG image 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>
+
<span style="background-color:#e7f2fa;color:#2980b9;">int lv_ffmpeg_get_frame_num(const char *path) </span>
: Get the number of frames contained in the[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv423lv_ffmpeg_get_frame_numPKc] file
+
: Get the number of frames contained in the file
 
:; Parameters
 
:; Parameters
 
:: path -- image or video file name
 
:: path -- image or video file name
73行目: 116行目:
 
:: Number of frames, less than 0 means failed
 
:: 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>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_obj_t *lv_ffmpeg_player_create(lv_obj_t *parent) </span>
 
: Create ffmpeg_player object
 
: Create ffmpeg_player object
 
:; Parameters
 
:; 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
+
:: parent -- pointer to an object, it will be the parent of the new player
 
:; Returns
 
:; Returns
 
:: pointer to the created ffmpeg_player
 
:: 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>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_res_t lv_ffmpeg_player_set_src(lv_obj_t *obj, const char *path) </span>
 
: Set the path of the file to be played
 
: Set the path of the file to be played
 
:; Parameters
 
:; Parameters
::* obj -[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv424lv_ffmpeg_player_set_srcP8lv_obj_tPKc]- pointer to a ffmpeg_player object
+
::* obj -- pointer to a ffmpeg_player object
 
::* path -- video file path
 
::* path -- video file path
 
:; Returns
 
:; Returns
 
:: LV_RES_OK: no error; LV_RES_INV: can't get the info.
 
:: 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>
+
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_ffmpeg_player_set_cmd(lv_obj_t *obj, lv_ffmpeg_player_cmd_t cmd) </span>
 
: Set command control video player
 
: Set command control video player
 
:; Parameters
 
:; 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
+
::* obj -- pointer to a ffmpeg_player object
 
::* cmd -- control commands
 
::* 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>
+
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_ffmpeg_player_set_auto_restart(lv_obj_t *obj, bool en) </span>
 
: Set the video to automatically replay
 
: Set the video to automatically replay
 
:; Parameters
 
:; 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
+
::* obj -- pointer to a ffmpeg_player object
 
::* en -- true: enable the auto restart
 
::* en -- true: enable the auto restart
  
 
Variables
 
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 style="background-color:#e7f2fa;color:#2980b9;">const lv_obj_class_t lv_ffmpeg_player_class </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>
+
<span style="background-color:#e7f2fa;color:#2980b9;">struct lv_ffmpeg_player_t </span>
: Pu[https://docs.lvgl.io/8.2/libs/ffmpeg.html#_CPPv422lv_ffmpeg_player_class]blic Members
+
: Public 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 style="background-color: #eeeeee;">lv_img_t img </span>
 +
::
 +
:; <span style="background-color: #eeeeee;">lv_timer_t *timer </span>
 +
::
 +
:; <span style="background-color: #eeeeee;">lv_img_dsc_t imgdsc </span>
 +
::
 +
:; <span style="background-color: #eeeeee;">bool auto_restart </span>
 +
::
 +
:; <span style="background-color: #eeeeee;">struct ffmpeg_context_s *ffmpeg_ctx</span>
 +
|
 +
 
 +
 
 +
列挙型
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">列挙型lv_ffmpeg_player_cmd_t</span>
 +
 
 +
: ''値:''
 +
:; <span style="background-color: #eeeeee;">列挙子LV_FFMPEG_PLAYER_CMD_START</span>
 +
::
 +
:; <span style="background-color: #eeeeee;">列挙子LV_FFMPEG_PLAYER_CMD_STOP</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 style="background-color: #eeeeee;">列挙子LV_FFMPEG_PLAYER_CMD_PAUSE</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 style="background-color: #eeeeee;">列挙子LV_FFMPEG_PLAYER_CMD_RESUME</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 style="background-color: #eeeeee;">列挙子_LV_FFMPEG_PLAYER_CMD_LAST</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
 
  
 +
機能
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_ffmpeg_init(void)</span>
 +
 +
: FFMPEG画像デコーダーを登録する
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">int lv_ffmpeg_get_frame_num(const char * path)</span>
 +
 +
: ファイルに含まれるフレーム数を取得します
 +
:; パラメーター
 +
:: パス-画像またはビデオファイル名
 +
:; 戻り値
 +
:: フレーム数、0未満は失敗したことを意味します
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_obj_t * lv_ffmpeg_player_create(lv_obj_t * parent)</span>
  
 +
: ffmpeg_playerオブジェクトを作成します
 +
:; パラメーター
 +
:: parent-オブジェクトへのポインタ。新しいプレーヤーの親になります
 +
:; 戻り値
 +
:: 作成されたffmpeg_playerへのポインター
  
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_res_t lv_ffmpeg_player_set_src(lv_obj_t * obj、const char * path)</span>
  
 +
: 再生するファイルのパスを設定します
 +
:; パラメーター
 +
::* obj-ffmpeg_playerオブジェクトへのポインター
 +
::* パス-ビデオファイルのパス
 +
:; 戻り値
 +
:: LV_RES_OK:エラーなし。LV_RES_INV:情報を取得できません。
  
 +
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_ffmpeg_player_set_cmd(lv_obj_t * obj、lv_ffmpeg_player_cmd_t cmd)</span>
  
 +
: コマンドコントロールビデオプレーヤーを設定する
 +
:; パラメーター
 +
::* obj-ffmpeg_playerオブジェクトへのポインター
 +
::* cmd-制御コマンド
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_ffmpeg_player_set_auto_restart(lv_obj_t * obj、bool en)</span>
 +
 +
: 自動的に再生されるようにビデオを設定する
 +
:; パラメーター
 +
::* obj-ffmpeg_playerオブジェクトへのポインター
 +
::* en --true:自動再起動を有効にします
 +
 +
変数
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">const lv_obj_class_t lv_ffmpeg_player_class</span>
 +
 +
:
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">struct lv_ffmpeg_player_t</span>
 +
 +
: パブリックメンバー
 +
:; <span style="background-color: #eeeeee;">lv_img_t img</span>
 +
::
 +
:; <span style="background-color: #eeeeee;">lv_timer_t * timer</span>
 +
::
 +
:; <span style="background-color: #eeeeee;">lv_img_dsc_t imgdsc</span>
 +
::
 +
:; <span style="background-color: #eeeeee;">bool auto_restart</span>
 +
::
 +
:; <span style="background-color: #eeeeee;">struct ffmpeg_context_s * ffmpeg_ctx</span>
 +
|}
  
  
  
----
 
 
:[[App:Library:LVGL:docs:3rd party libraries|戻る : Previous]]
 
:[[App:Library:LVGL:docs:3rd party libraries|戻る : Previous]]

2022年6月29日 (水) 17:44時点における最新版

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.

FFmpeg オーディオとビデオの録音、変換、ストリーミングを行うための完全なクロスプラットフォームソリューションです。
戻る : Previous


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
  • ここからFFmpegをダウンロード
  • ./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
戻る : Previous


Add FFmpeg to your project

英文 自動翻訳
  • Add library: FFmpeg (for GCC: -lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread)
  • ライブラリを追加: FFmpeg(GCCの場合-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread:)
戻る : Previous


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.

lv_conf.hLV_USE_FFMPEG を有効化します。

以下の例を参照してください。

なお、FFmpeg拡張は、LVGLのファイルシステムを使用しません。画像やビデオのパスを渡すだけで、OSやプラットフォームは通常通りです。

戻る : Previous


Example

英文 自動翻訳

Decode image

LVGL docs 3rdPartyLibs FFmpeg 01.png

Decode video

LVGL docs 3rdPartyLibs FFmpeg 01.png

戻る : Previous


API

英文 自動翻訳

Enums

enum lv_ffmpeg_player_cmd_t

Values:
enumerator LV_FFMPEG_PLAYER_CMD_START
enumerator LV_FFMPEG_PLAYER_CMD_STOP
enumerator LV_FFMPEG_PLAYER_CMD_PAUSE
enumerator LV_FFMPEG_PLAYER_CMD_RESUME
enumerator _LV_FFMPEG_PLAYER_CMD_LAST

Functions

void lv_ffmpeg_init(void)

Register FFMPEG image decoder

int lv_ffmpeg_get_frame_num(const char *path)

Get the number of frames contained in the 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)

Create ffmpeg_player object
Parameters
parent -- 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)

Set the path of the file to be played
Parameters
  • obj -- 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)

Set command control video player
Parameters
  • obj -- pointer to a ffmpeg_player object
  • cmd -- control commands

void lv_ffmpeg_player_set_auto_restart(lv_obj_t *obj, bool en)

Set the video to automatically replay
Parameters
  • obj -- pointer to a ffmpeg_player object
  • en -- true: enable the auto restart

Variables

const lv_obj_class_t lv_ffmpeg_player_class

struct lv_ffmpeg_player_t

Public Members
lv_img_t img
lv_timer_t *timer
lv_img_dsc_t imgdsc
bool auto_restart
struct ffmpeg_context_s *ffmpeg_ctx


列挙型

列挙型lv_ffmpeg_player_cmd_t

値:
列挙子LV_FFMPEG_PLAYER_CMD_START
列挙子LV_FFMPEG_PLAYER_CMD_STOP
列挙子LV_FFMPEG_PLAYER_CMD_PAUSE
列挙子LV_FFMPEG_PLAYER_CMD_RESUME
列挙子_LV_FFMPEG_PLAYER_CMD_LAST

機能

void lv_ffmpeg_init(void)

FFMPEG画像デコーダーを登録する

int lv_ffmpeg_get_frame_num(const char * path)

ファイルに含まれるフレーム数を取得します
パラメーター
パス-画像またはビデオファイル名
戻り値
フレーム数、0未満は失敗したことを意味します

lv_obj_t * lv_ffmpeg_player_create(lv_obj_t * parent)

ffmpeg_playerオブジェクトを作成します
パラメーター
parent-オブジェクトへのポインタ。新しいプレーヤーの親になります
戻り値
作成されたffmpeg_playerへのポインター

lv_res_t lv_ffmpeg_player_set_src(lv_obj_t * obj、const char * path)

再生するファイルのパスを設定します
パラメーター
  • obj-ffmpeg_playerオブジェクトへのポインター
  • パス-ビデオファイルのパス
戻り値
LV_RES_OK:エラーなし。LV_RES_INV:情報を取得できません。

void lv_ffmpeg_player_set_cmd(lv_obj_t * obj、lv_ffmpeg_player_cmd_t cmd)

コマンドコントロールビデオプレーヤーを設定する
パラメーター
  • obj-ffmpeg_playerオブジェクトへのポインター
  • cmd-制御コマンド

void lv_ffmpeg_player_set_auto_restart(lv_obj_t * obj、bool en)

自動的に再生されるようにビデオを設定する
パラメーター
  • obj-ffmpeg_playerオブジェクトへのポインター
  • en --true:自動再起動を有効にします

変数

const lv_obj_class_t lv_ffmpeg_player_class

struct lv_ffmpeg_player_t

パブリックメンバー
lv_img_t img
lv_timer_t * timer
lv_img_dsc_t imgdsc
bool auto_restart
struct ffmpeg_context_s * ffmpeg_ctx


戻る : Previous