diff --git a/board/miyoo/main/apps/ffmpeg/ffplay_launch.sh b/board/miyoo/main/apps/ffmpeg/ffplay_launch.sh index c198e07d..19f7e835 100755 --- a/board/miyoo/main/apps/ffmpeg/ffplay_launch.sh +++ b/board/miyoo/main/apps/ffmpeg/ffplay_launch.sh @@ -17,5 +17,5 @@ else echo -en "Invalid video/audio format!" # We're using SDL terminal to display above echo msg ## because all stdout is parsed to /dev/null from gmenu2x and it's child ps - st -k -e "/bin/sh" "-c" "echo -e \"\n\n\n\n\n\n Invalid video or audio format!\"; read -t 2" + st -k -e "/bin/sh" "-c" "echo -e \"\n\n\n\n\n\n\t\t\tInvalid video or audio format!\nExiting...\"; read -t 5" fi diff --git a/board/miyoo/main/apps/ffmpeg/video_record.sh b/board/miyoo/main/apps/ffmpeg/video_record.sh index 5ebcbac1..650338bb 100755 --- a/board/miyoo/main/apps/ffmpeg/video_record.sh +++ b/board/miyoo/main/apps/ffmpeg/video_record.sh @@ -1,7 +1,18 @@ #!/bin/sh +st_exec_func(){ + st -k -e "/bin/sh" "-c" "${1}" +} + +OUTPUTDIR="/mnt/output" + if pgrep "ffmpeg" > /dev/null; then - pkill ffmpeg + st_exec_func "pkill ffmpeg >/dev/null;\ + echo -e \"\n\n\n\n\n\n\t\t\tExiting VIDEO recording!\nWait a minute to end writing MP4 file to ${OUTPUTDIR}/\";\ + while pgrep ffmpeg >/dev/null; do sleep 1; done" else - mkdir -p /mnt/output - ffmpeg -f fbdev -r 8 -i /dev/fb0 -c:v mpeg4 -framerate 15 "/mnt/output/video_$(date +%Y%m%d%H%M%S).mp4" -nostdin + mkdir -p ${OUTPUTDIR} + ffmpeg -f fbdev -r 10 -i /dev/fb0 -vf "format=yuv420p"\ + -c:v libx264 -preset ultrafast -framerate 10 "${OUTPUTDIR}/video_$(date +%Y%m%d%H%M%S).mp4" -nostdin -loglevel warning & + # Wait a few seconds before actual screen record, the X264 encoder needs resources before it will stabilize video ouput + st_exec_func "echo -e \"\n\n\n\n\n\n\t\t\tStarting VIDEO record...\n\t\t\tWait a few seconds to start.\"; read -t 10" fi diff --git a/board/miyoo/main/gmenu2x/sections/applications/record-video b/board/miyoo/main/gmenu2x/sections/applications/record-video index 4df23d8f..da4ac521 100644 --- a/board/miyoo/main/gmenu2x/sections/applications/record-video +++ b/board/miyoo/main/gmenu2x/sections/applications/record-video @@ -1,4 +1,3 @@ title=VIDEO Rec description=Start/Stop recording FB0 video in the background -exec=/mnt/apps/ffmpeg/video_record.sh -params=& \ No newline at end of file +exec=/mnt/apps/ffmpeg/video_record.sh \ No newline at end of file diff --git a/configs/miyoo_musl_defconfig b/configs/miyoo_musl_defconfig index c03d011e..75a92d60 100644 --- a/configs/miyoo_musl_defconfig +++ b/configs/miyoo_musl_defconfig @@ -45,6 +45,15 @@ BR2_PACKAGE_FFMPEG_FFPLAY=y BR2_PACKAGE_FFMPEG_FFPROBE=y BR2_PACKAGE_FFMPEG_AVRESAMPLE=y BR2_PACKAGE_FFMPEG_POSTPROC=y +BR2_PACKAGE_FFMPEG_ENCODERS="ac3 jpegls mpeg1video mpeg2video mpeg4 pcm_s16be pcm_s16le png vorbis zlib" +BR2_PACKAGE_FFMPEG_DECODERS="ac3 flac jpegls mp2 mp3 mpeg1video mpeg2video mpeg4 mpegvideo opus png vorbis h264 hevc vc1" +BR2_PACKAGE_FFMPEG_MUXERS="ac3 avi ffm h264 hevc mp3 mp4 mpeg1video mpeg2video mpegts ogg rtp" +BR2_PACKAGE_FFMPEG_DEMUXERS="avi flac matroska mov mp3 mpegps mpegts mpegvideo ogg" +BR2_PACKAGE_FFMPEG_PARSERS="aac flac ac3 h264 hevc mpegaudio mpeg4video mpegvideo vc1" +BR2_PACKAGE_FFMPEG_BSFS="" +BR2_PACKAGE_FFMPEG_PROTOCOLS="file" +BR2_PACKAGE_FFMPEG_FILTERS="" +BR2_PACKAGE_FFMPEG_EXTRACONF="--enable-small" BR2_PACKAGE_MPG123=y BR2_PACKAGE_VORBIS_TOOLS=y BR2_PACKAGE_P7ZIP=y diff --git a/configs/miyoo_musl_static_defconfig b/configs/miyoo_musl_static_defconfig index 687e02f7..1bdb6114 100644 --- a/configs/miyoo_musl_static_defconfig +++ b/configs/miyoo_musl_static_defconfig @@ -29,6 +29,15 @@ BR2_PACKAGE_FFMPEG_FFPLAY=y BR2_PACKAGE_FFMPEG_FFPROBE=y BR2_PACKAGE_FFMPEG_AVRESAMPLE=y BR2_PACKAGE_FFMPEG_POSTPROC=y +BR2_PACKAGE_FFMPEG_ENCODERS="ac3 jpegls mpeg1video mpeg2video mpeg4 pcm_s16be pcm_s16le png vorbis zlib" +BR2_PACKAGE_FFMPEG_DECODERS="ac3 flac jpegls mp2 mp3 mpeg1video mpeg2video mpeg4 mpegvideo opus png vorbis h264 hevc vc1" +BR2_PACKAGE_FFMPEG_MUXERS="ac3 avi ffm h264 hevc mp3 mp4 mpeg1video mpeg2video mpegts ogg rtp" +BR2_PACKAGE_FFMPEG_DEMUXERS="avi flac matroska mov mp3 mpegps mpegts mpegvideo ogg" +BR2_PACKAGE_FFMPEG_PARSERS="aac flac ac3 h264 hevc mpegaudio mpeg4video mpegvideo vc1" +BR2_PACKAGE_FFMPEG_BSFS="" +BR2_PACKAGE_FFMPEG_PROTOCOLS="file" +BR2_PACKAGE_FFMPEG_FILTERS="" +BR2_PACKAGE_FFMPEG_EXTRACONF="--enable-small" BR2_PACKAGE_FLITE=y BR2_PACKAGE_FLUIDLITE=y BR2_PACKAGE_MIMIC=y diff --git a/configs/miyoo_uclibc_defconfig b/configs/miyoo_uclibc_defconfig index f73a0467..2180ce21 100644 --- a/configs/miyoo_uclibc_defconfig +++ b/configs/miyoo_uclibc_defconfig @@ -45,6 +45,15 @@ BR2_PACKAGE_FFMPEG_FFPLAY=y BR2_PACKAGE_FFMPEG_FFPROBE=y BR2_PACKAGE_FFMPEG_AVRESAMPLE=y BR2_PACKAGE_FFMPEG_POSTPROC=y +BR2_PACKAGE_FFMPEG_ENCODERS="ac3 jpegls mpeg1video mpeg2video mpeg4 pcm_s16be pcm_s16le png vorbis zlib" +BR2_PACKAGE_FFMPEG_DECODERS="ac3 flac jpegls mp2 mp3 mpeg1video mpeg2video mpeg4 mpegvideo opus png vorbis h264 hevc vc1" +BR2_PACKAGE_FFMPEG_MUXERS="ac3 avi ffm h264 hevc mp3 mp4 mpeg1video mpeg2video mpegts ogg rtp" +BR2_PACKAGE_FFMPEG_DEMUXERS="avi flac matroska mov mp3 mpegps mpegts mpegvideo ogg" +BR2_PACKAGE_FFMPEG_PARSERS="aac flac ac3 h264 hevc mpegaudio mpeg4video mpegvideo vc1" +BR2_PACKAGE_FFMPEG_BSFS="" +BR2_PACKAGE_FFMPEG_PROTOCOLS="file" +BR2_PACKAGE_FFMPEG_FILTERS="" +BR2_PACKAGE_FFMPEG_EXTRACONF="--enable-small" BR2_PACKAGE_MPG123=y BR2_PACKAGE_VORBIS_TOOLS=y BR2_PACKAGE_BZIP2=y diff --git a/configs/miyoo_uclibc_static_defconfig b/configs/miyoo_uclibc_static_defconfig index 4b2d2080..ab879289 100644 --- a/configs/miyoo_uclibc_static_defconfig +++ b/configs/miyoo_uclibc_static_defconfig @@ -29,6 +29,15 @@ BR2_PACKAGE_FFMPEG_FFPLAY=y BR2_PACKAGE_FFMPEG_FFPROBE=y BR2_PACKAGE_FFMPEG_AVRESAMPLE=y BR2_PACKAGE_FFMPEG_POSTPROC=y +BR2_PACKAGE_FFMPEG_ENCODERS="ac3 jpegls mpeg1video mpeg2video mpeg4 pcm_s16be pcm_s16le png vorbis zlib" +BR2_PACKAGE_FFMPEG_DECODERS="ac3 flac jpegls mp2 mp3 mpeg1video mpeg2video mpeg4 mpegvideo opus png vorbis h264 hevc vc1" +BR2_PACKAGE_FFMPEG_MUXERS="ac3 avi ffm h264 hevc mp3 mp4 mpeg1video mpeg2video mpegts ogg rtp" +BR2_PACKAGE_FFMPEG_DEMUXERS="avi flac matroska mov mp3 mpegps mpegts mpegvideo ogg" +BR2_PACKAGE_FFMPEG_PARSERS="aac flac ac3 h264 hevc mpegaudio mpeg4video mpegvideo vc1" +BR2_PACKAGE_FFMPEG_BSFS="" +BR2_PACKAGE_FFMPEG_PROTOCOLS="file" +BR2_PACKAGE_FFMPEG_FILTERS="" +BR2_PACKAGE_FFMPEG_EXTRACONF="--enable-small" BR2_PACKAGE_FLUIDLITE=y BR2_PACKAGE_MPG123=y BR2_PACKAGE_VORBIS_TOOLS=y