Recherche avancée

Médias (1)

Mot : - Tags -/ticket

Autres articles (29)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (3870)

  • Screen recording with ffmpeg has stuttering [closed]

    7 novembre 2024, par Adam Labuš

    I am recording with ffmpeg like so : ffmpeg -f x11grab -probesize 18M -framerate 30 -video_size 1920x1080 -i :0.0+0,0 -f pulse -i  -c:v libx264 -preset ultrafast -c:a aac .mkv

    


    Problem :

    


    Usually at the start the video starts to stutter, sometimes stuttering up to 20 seconds, each frame during this stuttering is shown for 1-5 seconds. Example video : https://drive.google.com/file/d/1uwdaFboCO2qNALgaPC8JD15W64BE3VyY/view?usp=sharing

    


    Diagnostics :

    


    Machine details :

    


    OS: Fedora Linux 41 (Server Edition) x86_64
Host: HP ProDesk 600 G2 DM
Kernel: Linux 6.11.5-300.fc41.x86_64
WM: Openbox (X11)
CPU: Intel(R) Core(TM) i5-6500T (4) @ 3.10 GHz
GPU: Intel HD Graphics 530 @ 1.10 GHz [Integrated]
Memory: 884.62 MiB / 15.49 GiB (6%)
Swap: 0 B / 8.00 GiB (0%)
Disk (/): 5.45 GiB / 14.94 GiB (37%) - xfs


    


    My gpu(20%), cpu (50%), disk utilisation is always in well perfect range - I tried stress testing gpu, ram, cpu and disk while recording and it had no effect on the recording. I tried recording to ramdisk. I always have 10gb ram available. I ran the same command on my laptop (hp 850 g5) and computer and encountered no stuttering at all.

    


    If it matters the machine is running bare Xorg and openbox display manager

    


    I have tried :

    


      

    • setting fps_mode to cfr - because the frame rate does fluctuate around 29-30 at the start
    • 


    • setting fps_mode to vfr
    • 


    • setting fps_mode to passthrough
    • 


    • setting cfr all the way to 40
    • 


    • presets veryfast, faster
    • 


    • increasing thread_queue_size
    • 


    • async=1
    • 


    


    Ffmpeg Log :

    


    ffmpeg version 7.0.2 Copyright (c) 2000-2024 the FFmpeg developers                                                                                                                                                                                                              
  built with gcc 14 (GCC)                                                                                                                                                                                                                                                       
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-swi
tches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/re
dhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' --extra-cflags=' -I/usr/include/rav1e' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --enable-chromaprint --enable-fontcon
fig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-lcms2 --enable-libaom --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libass --enable-libbluray --enable-libbs2b --enable-libcodec2 --enable-libcdio --enable-libdrm --enabl
e-libjack --enable-libjxl --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libharfbuzz --enable-libilbc --enable-libmp3lame --enable-libmysofa --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenh264 --enable-libopenjpeg --enabl
e-libopenmpt --enable-libopus --enable-libpulse --enable-libplacebo --enable-librsvg --enable-librav1e --enable-librubberband --enable-libqrencode --enable-libsmbclient --enable-version3 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh
 --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-vulkan --enable-libshaderc --enable-libwebp --enable-l
ibx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-avfilter --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-strip
ping --shlibdir=/usr/lib64 --enable-lto --enable-libvpl --enable-runtime-cpudetect                                                                                                                                                                                              
  libavutil      59.  8.100 / 59.  8.100                                                                                                                                                                                                                                        
  libavcodec     61.  3.100 / 61.  3.100                                                                                                                                                                                                                                        
  libavformat    61.  1.100 / 61.  1.100                                                                                                                                                                                                                                        
  libavdevice    61.  1.100 / 61.  1.100                                                                                                                                                                                                                                        
  libavfilter    10.  1.100 / 10.  1.100                                                                                                                                                                                                                                        
  libswscale      8.  1.100 /  8.  1.100                                                                                                                                                                                                                                        
  libswresample   5.  1.100 /  5.  1.100                                                                                                                                                                                                                                        
  libpostproc    58.  1.100 / 58.  1.100                                                                                                                                                                                                                                        
Input #0, x11grab, from ':0.0+0,0':                                                                                                                                                                                                                                             
  Duration: N/A, start: 1730923728.417205, bitrate: 1990656 kb/s                                                                                                                                                                                                                
  Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 1990656 kb/s, 30 fps, 29.92 tbr, 1000k tbn                                                                                                                                                                 
[aist#1:0/pcm_s16le @ 0x55a29c634a40] Guessed Channel Layout: stereo                                                                                                                                                                                                            
Input #1, pulse, from 'auto_null.monitor':                                                                                                                                                                                                                                      
  Duration: N/A, start: 1730923728.521148, bitrate: 1536 kb/s                                                                                                                                                                                                                   
  Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s                                                                                                                                                                                                               
Stream mapping:                                                                                                                                                                                                                                                                 
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))                                                                                                                                                                                                                     
  Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))                                                                                                                                                                                                                      
Press [q] to stop, [?] for help                                                                                                                                                                                                                                                 
[libx264 @ 0x55a29c627f00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2                                                                                                                                                                                
[libx264 @ 0x55a29c627f00] profile High 4:4:4 Predictive, level 4.0, 4:4:4, 8-bit                                                                                                                                                                                               
[libx264 @ 0x55a29c627f00] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 tre
llis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00                                                                                                                                
Output #0, matroska, to '/tmp/tmp38n41uwz.mkv':                                                                                                                                                                                                                                 
  Metadata:                                                                                                                                                                                                                                                                     
    encoder         : Lavf61.1.100                                                                                                                                                                                                                                              
  Stream #0:0: Video: h264 (H264 / 0x34363248), yuv444p(progressive), 1920x1080, q=2-31, 29.92 fps, 1k tbn                                                                                                                                                                      
      Metadata:                                                                                                       
        encoder         : Lavc61.3.100 libx264                                                                        
      Side data:                                                                                                      
        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A                                                 
  Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz, stereo, fltp, 128 kb/s                            
      Metadata:                                                                                                       
        encoder         : Lavc61.3.100 aac                                                                            
frame=  915 fps= 24 q=29.0 size=    7936KiB time=00:00:35.79 bitrate=1816.0kbits/s dup=0 drop=167 speed=0.929x        
                                                                                                                      
[q] command received. Exiting.


    


  • Adding x264 and AAC encoding to a Telegram-based FFmpeg script

    1er octobre 2024, par Pooria Darvishi

    I'm trying to modify a Telegram script that utilizes static FFmpeg and VPX libraries to also include x264 and AAC encoding. I'm quite new to this and could use some guidance.

    


    Background :

    


    Telegram uses static .a files of FFmpeg and VPX, compiled using NDK. I have the script that builds these libraries. I want to modify this script to include x264 and AAC libraries as well.

    


    Problem :

    


    I'm unsure how to integrate x264 and AAC into the existing build process and how to configure FFmpeg to use these codecs.

    


    Code snippets :

    


    build_ffmpeg.sh :

    


    #!/bin/bash

# instructions for build
# used
# ffmpeg 4.4.3
# lib vpx 1.10.9
# NDK for compile libvpx. Last successful build with 21.1.6352462
# NDK r10e for compile ffmpeg
#
# 1) download ffmpeg
# 2) set NDK_r10e and NDK variables
# 3) download lib vpx
# 4) copy libvpx to vpx-android folder and rename as libvpx
# 5) copy build_ffmpeg foleder in ffmepg directory
# 6) run build_ffmpeg.sh
# 7) see compiled library in build_ffmpeg/adnroid folder

NDK="/Users/macbookpro/Library/Android/sdk/ndk/21.1.6352462"
NDK_r10e="/Users/macbookpro/Library/Android/sdk/ndk/android-ndk-r10e"

#build vpx
cd ./vpx-android
export ANDROID_NDK=$NDK
sh build-vpx.sh
cd ..

cd ./x264-android
export ANDROID_NDK=$NDK
sh build.sh
cd ..

NDK=$NDK_r10e

function build_one {

echo "Cleaning..."
rm config.h
make clean

echo "Configuring..."

INCLUDES=" -I${PREFIX}/include"
LIBS=" -L${PREFIX}/lib"

cd /Users/macbookpro/Downloads/ffmpeg-4.4.3
./configure \
--cc=$CC \
--nm=$NM \
--enable-stripping \
--arch=$ARCH \
--target-os=linux \
--enable-cross-compile \
--yasmexe=$NDK/prebuilt/darwin-x86_64/bin/yasm \
--prefix=$PREFIX \
--enable-pic \
--disable-shared \
--enable-static \
--enable-asm \
--enable-inline-asm \
--cross-prefix=$CROSS_PREFIX \
--sysroot=$PLATFORM \
--extra-cflags="${INCLUDES} -Wl,-Bsymbolic -Os -DCONFIG_LINUX_PERF=0 -DANDROID $OPTIMIZE_CFLAGS -fPIE -pie --static -fPIC" \
--extra-ldflags="${LIBS} -Wl,-Bsymbolic -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -fPIC" \
--extra-libs="-lgcc" \
\
--enable-version3 \
--enable-gpl \
\
--disable-doc \
--disable-avx \
\
--disable-everything \
--disable-network \
--disable-zlib \
--disable-avfilter \
--disable-avdevice \
--disable-postproc \
--disable-debug \
--disable-programs \
--disable-network \
\
--enable-libvpx \
--enable-decoder=libvpx_vp9 \
--enable-libx264 \
--enable-runtime-cpudetect \
--enable-pthreads \
--enable-avresample \
--enable-swscale \
--enable-protocol=file \
--enable-decoder=h264 \
--enable-decoder=mpeg4 \
--enable-decoder=mjpeg \
--enable-decoder=gif \
--enable-decoder=alac \
--enable-decoder=opus \
--enable-demuxer=mov \
--enable-demuxer=gif \
--enable-demuxer=ogg \
--enable-demuxer=matroska \
--enable-hwaccels \
--enable-runtime-cpudetect \
$ADDITIONAL_CONFIGURE_FLAG

#echo "continue?"
#read
make -j8 install

}

#x86_64
PREBUILT=$NDK/toolchains/x86_64-4.9/prebuilt/darwin-x86_64
PLATFORM=$NDK/platforms/android-21/arch-x86_64
LD=$PREBUILT/bin/x86_64-linux-android-ld
AR=$PREBUILT/bin/x86_64-linux-android-ar
NM=$PREBUILT/bin/x86_64-linux-android-nm
GCCLIB=$PREBUILT/lib/gcc/x86_64-linux-android/4.9/libgcc.a
CC=$PREBUILT/bin/x86_64-linux-android-gcc
CROSS_PREFIX=$PREBUILT/bin/x86_64-linux-android-
ARCH=x86_64
CPU=x86_64
PREFIX=./android/x86_64
ADDITIONAL_CONFIGURE_FLAG="--disable-mmx --disable-inline-asm"
build_one

#arm64-v8a
PREBUILT=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64
PLATFORM=$NDK/platforms/android-21/arch-arm64
LD=$PREBUILT/bin/aarch64-linux-android-ld
AR=$PREBUILT/bin/aarch64-linux-android-ar
NM=$PREBUILT/bin/aarch64-linux-android-nm
GCCLIB=$PREBUILT/lib/gcc/aarch64-linux-android/4.9/libgcc.a
CC=$PREBUILT/bin/aarch64-linux-android-gcc
CROSS_PREFIX=$PREBUILT/bin/aarch64-linux-android-
ARCH=arm64
CPU=arm64-v8a
OPTIMIZE_CFLAGS=
PREFIX=./android/arm64-v8a
ADDITIONAL_CONFIGURE_FLAG="--enable-neon --enable-optimizations"
build_one

#arm v7n
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
PLATFORM=$NDK/platforms/android-16/arch-arm
LD=$PREBUILT/bin/arm-linux-androideabi-ld
AR=$PREBUILT/bin/arm-linux-androideabi-ar
NM=$PREBUILT/bin/arm-linux-androideabi-nm
GCCLIB=$PREBUILT/lib/gcc/arm-linux-androideabi/4.9/libgcc.a
CC=$PREBUILT/bin/arm-linux-androideabi-gcc
CROSS_PREFIX=$PREBUILT/bin/arm-linux-androideabi-
ARCH=arm
CPU=armv7-a
OPTIMIZE_CFLAGS="-marm -march=$CPU"
PREFIX=./android/armeabi-v7a
ADDITIONAL_CONFIGURE_FLAG=--enable-neon
build_one

#x86
PREBUILT=$NDK/toolchains/x86-4.9/prebuilt/darwin-x86_64
PLATFORM=$NDK/platforms/android-16/arch-x86
LD=$PREBUILT/bin/i686-linux-android-ld
AR=$PREBUILT/bin/i686-linux-android-ar
NM=$PREBUILT/bin/i686-linux-android-nm
GCCLIB=$PREBUILT/lib/gcc/i686-linux-android/4.9/libgcc.a
CC=$PREBUILT/bin/i686-linux-android-gcc
CROSS_PREFIX=$PREBUILT/bin/i686-linux-android-
ARCH=x86
CPU=i686
OPTIMIZE_CFLAGS="-march=$CPU"
PREFIX=./android/x86
ADDITIONAL_CONFIGURE_FLAG="--disable-mmx --disable-yasm"
build_one

  if [[ -e ./build_ffmpeg/android ]]; then
      rm -rf ./build_ffmpeg/android
  fi

mv ./android ./build_ffmpeg/


    


    build-vpx.sh :

    


    #!/bin/bash

set -u
. _settings.sh

LIB_VPX="libvpx"
LIB_GIT=v1.10.0

if [[ -f "${LIB_VPX}/build/make/version.sh" ]]; then
  version=`"${LIB_VPX}/build/make/version.sh" --bare "${LIB_VPX}"`
fi

configure_make() {
  pushd "${LIB_VPX}" || exit
  ABI=$1;
  echo -e "\n** BUILD STARTED: ${LIB_VPX} (${version}) for ${ABI} **"

  configure "$@"
  case ${ABI} in
    armeabi)
      TARGET="armv7-android-gcc --disable-neon --disable-neon-asm"
    ;;
    armeabi-v7a)
      TARGET="armv7-android-gcc --enable-neon --disable-neon-asm"
    ;;
    arm64-v8a)
      TARGET="arm64-android-gcc"
    ;;
    x86)
      TARGET="x86-android-gcc"
    ;;
    x86_64)
      TARGET="x86_64-android-gcc"
    ;;
    mips)
      TARGET="mips32-linux-gcc"
    ;;
    mips64)
      TARGET="mips64-linux-gcc"
    ;;
  esac

make clean

CPU_DETECT="--disable-runtime-cpu-detect"
if [[ $1 =~ x86.* ]]; then
   CPU_DETECT="--enable-runtime-cpu-detect"
fi

  ./configure \
    --extra-cflags="-isystem ${NDK_SYSROOT}/usr/include/${NDK_ABIARCH} -isystem ${NDK_SYSROOT}/usr/include" \
    --libc=${NDK_SYSROOT} \
    --prefix=${PREFIX} \
    --target=${TARGET} \
    ${CPU_DETECT} \
    --as=auto \
    --disable-docs \
    --enable-pic \
    --enable-libyuv \
    --enable-static \
    --enable-small \
    --enable-optimizations \
    --enable-better-hw-compatibility \
    --enable-realtime-only \
    --enable-vp8 \
    --enable-vp9 \
    --disable-webm-io \
    --disable-examples \
    --disable-tools \
    --disable-debug \
    --disable-unit-tests || exit 1

  make -j${HOST_NUM_CORES} install
  popd || true
}

for ((i=0; i < ${#ABIS[@]}; i++))
do
  if [[ $# -eq 0 ]] || [[ "$1" == "${ABIS[i]}" ]]; then
    [[ ${ANDROID_API} -lt 21 ]] && ( echo "${ABIS[i]}" | grep 64 > /dev/null ) && continue;
    configure_make "${ABIS[i]}"
    echo -e "** BUILD COMPLETED: ${LIB_VPX} for ${ABIS[i]} **\n\n"
  fi
done


    


    _settings.sh :

    


    #!/bin/bash

if [[ -z $ANDROID_NDK ]] || [[ ! -d $ANDROID_NDK ]] ; then
    echo "You need to set ANDROID_NDK environment variable, exiting"
    echo "Use: export ANDROID_NDK=/your/path/to/android-ndk-rxx"
    echo "e.g.: export ANDROID_NDK=/opt/android/android-ndk-r18b"
    exit 1
fi

set -u

ANDROID_API=21

ABIS=("armeabi-v7a" "arm64-v8a" "x86" "x86_64")

BASEDIR=`pwd`
NDK=${ANDROID_NDK}
HOST_NUM_CORES=$(nproc)

CFLAGS_="-DANDROID -fpic -fpie"
LDFLAGS_=""

configure() {
  ABI=$1;

  case $ABI in
    armeabi)
      NDK_ARCH="arm"
      NDK_ABIARCH="arm-linux-androideabi"
      CFLAGS="-march=armv5 -marm -finline-limit=64"
      LDFLAGS=""
      ASFLAGS=""
    ;;
    armeabi-v7a)
      NDK_ARCH="arm"
      NDK_ABIARCH="arm-linux-androideabi"
      CFLAGS="${CFLAGS_} -Os -march=armv7-a -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a8 -mthumb -D__thumb__"
      LDFLAGS="${LDFLAGS_} -march=armv7-a"
      ASFLAGS=""
    ;;
    arm64-v8a)
      NDK_ARCH="arm64"
      NDK_ABIARCH="aarch64-linux-android"
      CFLAGS="${CFLAGS_} -O3 -march=armv8-a"
      LDFLAGS="${LDFLAGS_}"
      ASFLAGS=""
    ;;
    x86)
      NDK_ARCH="x86"
      NDK_ABIARCH="i686-linux-android"
      CFLAGS="${CFLAGS_} -O3 -march=i686 -mtune=intel -msse3 -mfpmath=sse -m32 -fPIC"
      LDFLAGS="-m32"
      ASFLAGS="-D__ANDROID__"
    ;;
    x86_64)
      NDK_ARCH="x86_64"
      NDK_ABIARCH="x86_64-linux-android"
      CFLAGS="${CFLAGS_} -O3 -march=x86-64 -mtune=intel -msse4.2 -mpopcnt -m64 -fPIC"
      LDFLAGS=""
      ASFLAGS="-D__ANDROID__"
    ;;
  esac

  TOOLCHAIN_PREFIX=${BASEDIR}/android-toolchain
  NDK_SYSROOT=${TOOLCHAIN_PREFIX}/sysroot

  if [[ -e ${TOOLCHAIN_PREFIX} ]]; then
      rm -rf ${TOOLCHAIN_PREFIX}
  fi

  [[ -d ${TOOLCHAIN_PREFIX} ]] || python3 ${NDK}/build/tools/make_standalone_toolchain.py \
     --arch ${NDK_ARCH} \
     --api ${ANDROID_API} \
     --stl libc++ \
     --install-dir=${TOOLCHAIN_PREFIX}

  PREFIX=../../android/${ABI}


  export PATH=${TOOLCHAIN_PREFIX}/bin:$PATH
  export CROSS_PREFIX=${TOOLCHAIN_PREFIX}/bin/${NDK_ABIARCH}-
  export CFLAGS="${CFLAGS}"
  export CPPFLAGS="${CFLAGS}"
  export CXXFLAGS="${CFLAGS} -std=c++11"
  export ASFLAGS="${ASFLAGS}"
  export LDFLAGS="${LDFLAGS} -L${NDK_SYSROOT}/usr/lib"

  export AR="${CROSS_PREFIX}ar"
  export AS="${CROSS_PREFIX}clang"
  export CC="${CROSS_PREFIX}clang"
  export CXX="${CROSS_PREFIX}clang++"
  export LD="${CROSS_PREFIX}ld"
  export STRIP="${CROSS_PREFIX}strip"
  export RANLIB="${CROSS_PREFIX}ranlib"
  export CPP="${CROSS_PREFIX}cpp"
  export NM="${CROSS_PREFIX}nm"

  echo "**********************************************"
  echo "### Use NDK=${NDK}"
  echo "### Use ANDROID_API=${ANDROID_API}"
  echo "### Install directory: PREFIX=${PREFIX}"
  echo "**********************************************"
}


    


    Any help would be greatly appreciated.

    


    I'm working on an Android app that requires custom video encoding using FFmpeg. I've tried to build a newer version of FFmpeg but couldn't integrate it into my project due to the older version requirement. I've also tried pre-built scripts that support a wide range of codecs, but they don't generate the necessary .a files for libraries like x264, VPX, and AAC.

    


  • Flutter streaming with FFmpeg_flutter_kit not reaching server

    22 juillet 2024, par Julio Cesar Reis

    I'm trying to stream my flutter screen to youtube using FFmpeg flutter kit. Everything seems fine but the output never reaches youtube server.

    


      

    1. log in using Yt flutter package.

      


    2. 


    3. create a broadcast

      


    4. 


    5. create the livestream and bind it to the broadcast

      


    6. 


    7. get the ingestion address through LiveStreamItem.cdn.ingestionInfo.ingestionAddress

      


    8. 


    9. stream the frames saved through FFmpeg :

      


      final String rtmpUrl = "ls.cdn.ingestionInfo.ingestionAddress"

      


      final String command = '-re -i $framePath -c:v libx264 -f flv $rtmpUrl';

      


      await FFmpegKit.execute(command);

      


    10. 


    


    But at the end I get errors like SESSION_NOT_FOUND, or the stream never reaches the server which keeps my broadcast as ready and not active so I can't go live.

    


    I've tried using the ingestionAddress plus the streamName separated by a slash, I've tried the direct stream using rtmp ://x.rtmp.youtube.com/live2/MY_API_KEY but none of that worked.

    


    ERROR LOG :

    


    


    I/flutter (19889) : ffmpeg version n6.0 I/flutter (19889) : Copyright
(c) 2000-2023 the FFmpeg developers I/flutter (19889) : I/flutter
(19889) : built with Android (7155654, based on r399163b1) clang
version 11.0.5
(https://android.googlesource.com/toolchain/llvm-project
87f1315dfbea7c137aa2e6d362dbb457e388158d) I/flutter (19889) :
    
configuration : —cross-prefix=aarch64-linux-android-
—sysroot=/Users/sue/Library/Android/sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot
—prefix=/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/ffmpeg
—pkg-config=/opt/homebrew/bin/pkg-config —enable-version3 —arch=aarch64 —cpu=armv8-a —target-os=android —enable-neon —enable-asm —enable-inline-asm —ar=aarch64-linux-android-ar —cc=aarch64-linux-android24-clang —cxx=aarch64-linux-android24-clang++ —ranlib=aarch64-linux-android-ranlib —strip=aarch64-linux-android-strip —nm=aarch64-linux-android-nm —extra-libs='-L/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib
-lndk_compat' —disable-autodetect —enable-cross-compile —enable-pic —enable-jni —enable-optimizations —enable-swscale —disable-static —enable-shared —enable-pthreads —enable-v4l2-m2m —disable-outdev=fbdev —disable-indev=fbdev —enable-small —disable-xmm-clobber-test —disable-debug —enable-lto —disable-neon I/flutter (19889) : libavutil 58. 2.100 / 58. 2.100 I/flutter
(19889) : libavcodec 60. 3.100 / 60. 3.100 I/flutter (19889) :
    
libavformat 60. 3.100 / 60. 3.100 I/flutter (19889) :
    
libavdevice 60. 1.100 / 60. 1.100 I/flutter (19889) :
    
libavfilter 9. 3.100 / 9. 3.100 I/flutter (19889) : libswscale
7. 1.100 / 7. 1.100 I/flutter (19889) : libswresample 4. 10.100 / 4. 10.100 I/flutter (19889) : Input #0, png_pipe, from
'/data/user/0/com.example.poc_stream/cache/frame.png' : I/flutter
(19889) : Duration : I/flutter (19889) : N/A I/flutter (19889) : ,
bitrate : I/flutter (19889) : N/A I/flutter (19889) : I/flutter
(19889) : Stream #0:0 I/flutter (19889) : : Video : png, rgba(pc),
412x771 I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter
(19889) : 25 tbr, I/flutter (19889) : 25 tbn I/flutter (19889) :
E/flutter (19889) : [ERROR:flutter/runtime/dart_vm_initializer.cc(41)]
Unhandled Exception : PlatformException(SESSION_NOT_FOUND, Session not
found., null, null) E/flutter (19889) : #0
    
StandardMethodCodec.decodeEnvelope
(package:flutter/src/services/message_codecs.dart:648:7) E/flutter
(19889) : #1 MethodChannel._invokeMethod
(package:flutter/src/services/platform_channel.dart:334:18) E/flutter
(19889) : E/flutter (19889) : #2
    
FFmpegKitFactory.mapToNullableSession
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_factory.dart:76:3)
E/flutter (19889) : E/flutter (19889) : #3
    
FFmpegKitInitializer._processCompleteCallbackEvent.
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_flutter_initializer.dart:213:48)
E/flutter (19889) : E/flutter (19889) :
I/flutter (19889) : Stream mapping : I/flutter (19889) : Stream #0:0 ->
#0:0 I/flutter (19889) : (png (native) -> h264 (libx264)) I/flutter (19889) : I/flutter (19889) : Press [q] to stop, [?] for help I/flutter
(19889) : [libx264 @ 0xb40000736398c190] using cpu capabilities : ARMv8
NEON I/flutter (19889) : [libx264 @ 0xb400007363a92e40] using cpu
capabilities : ARMv8 NEON I/flutter (19889) : [libx264 @
0xb40000736398c190] profile High 4:4:4 Predictive, level 3.0, 4:4:4,
8-bit I/flutter (19889) : [libx264 @ 0xb40000736398c190] 264 - core 164

    


      

    • H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options : cabac=1 ref=3
deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00
mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0
deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6
lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00 I/flutter (19889) : Output #0, flv, to
'rtmp ://x.rtmp.youtube.com/live2/x7k6-grm1-z15w-tqb7-akrt' : I/flutter
(19889) : Metadata : I/flutter (19889) : encoder :
I/flutter (19889) : Lavf60.3.100 I/flutter (19889) : I/flutter (19889) :
Stream #0:0 I/flutter (19889) : : Video : h264 ([7][0][0][0] / 0x0007),
yuv444p(tv, unknown/bt709/iec61966-2-1, progressive), 412x771, q=2-31
I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter (19889) :
1k tbn I/flutter (19889) : I/flutter (19889) : Metadata : I/flutter
(19889) : encoder : I/flutter (19889) : Lavc60.3.100
libx264 I/flutter (19889) : I/flutter (19889) : Side data :
I/flutter (19889) : I/flutter (19889) : cpb : I/flutter (19889) :
bitrate max/min/avg : 0/0/0 buffer size : 0 I/flutter (19889) :
vbv_delay : N/A I/flutter (19889) : I/flutter (19889) : Instance of
'Statistics' I/flutter (19889) : frame= 0 fps=0.0 q=0.0 size=
      
0kB time=N/A bitrate=N/A speed=N/A I/flutter (19889) : [libx264 @
0xb400007363a92e40] profile High 4:4:4 Predictive, level 3.0, 4:4:4,
8-bit I/flutter (19889) : [libx264 @ 0xb400007363a92e40] 264 - core 164
    • 


    • H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options : cabac=1 ref=3
deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00
mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0
deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6
lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00 I/flutter (19889) : Output #0, flv, to
'rtmp ://x.rtmp.youtube.com/live2/x7k6-grm1-z15w-tqb7-akrt' : I/flutter
(19889) : Metadata : I/flutter (19889) : encoder :
I/flutter (19889) : Lavf60.3.100 I/flutter (19889) : I/flutter (19889) :
Stream #0:0 I/flutter (19889) : : Video : h264 ([7][0][0][0] / 0x0007),
yuv444p(tv, unknown/bt709/iec61966-2-1, progressive), 412x771, q=2-31
I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter (19889) :
1k tbn I/flutter (19889) : I/flutter (19889) : Metadata : I/flutter
(19889) : encoder : I/flutter (19889) : Lavc60.3.100
libx264 I/flutter (19889) : I/flutter (19889) : Side data :
I/flutter (19889) : I/flutter (19889) : cpb : I/flutter (19889) :
bitrate max/min/avg : 0/0/0 buffer size : 0 I/flutter (19889) :
vbv_delay : N/A I/flutter (19889) : I/flutter (19889) : Instance of
'Statistics' I/flutter (19889) : frame= 0 fps=0.0 q=0.0 size=
      
0kB time=N/A bitrate=N/A speed=N/A I/flutter (19889) : [flv @
0xb4000074238c1c30] Failed to update header with correct duration.
I/flutter (19889) : [flv @ 0xb4000074238c1c30] Failed to update header
with correct filesize. I/flutter (19889) : Instance of 'Statistics'
I/flutter (19889) : frame= 1 fps=0.0 q=28.0 Lsize= 4kB
time=00:00:00.00 bitrate=N/A speed= 0x I/flutter (19889) :
video:4kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead : I/flutter (19889) : 8.895621% I/flutter (19889) :
I/flutter (19889) : [libx264 @ 0xb40000736398c190] frame I:1 Avg
QP:14.17 size : 2957 I/flutter (19889) : [libx264 @
0xb40000736398c190] mb I I16..4 : 1.4% 93.3% 5.3% I/flutter (19889) :
[libx264 @ 0xb40000736398c190] 8x8 transform intra:93.3% I/flutter
(19889) : [libx264 @ 0xb40000736398c190] coded y,u,v intra : 3.4% 1.4%
1.7% I/flutter (19889) : [libx264 @ 0xb40000736398c190] i16 v,h,dc,p : 78% 17% 6% 0% I/flutter (19889) : [libx264 @ 0xb40000736398c190] i8
v,h,dc,ddl,ddr,vr,hd,vl,hu : 36% 0% 64% 0% 0% 0% 0% 0% 0%
I/flutter (19889) : [libx264 @ 0xb40000736398c190] i4
v,h,dc,ddl,ddr,vr,hd,vl,hu : 49% 21% 14% 1% 3% 4% 3% 2% 3%
I/flutter (19889) : [libx264 @ 0xb40000736398c190] kb/s:591.40
I/flutter (19889) : ffmpeg version n6.0 I/flutter (19889) : Copyright
(c) 2000-2023 the FFmpeg developers I/flutter (19889) : I/flutter
(19889) : built with Android (7155654, based on r399163b1) clang
version 11.0.5
(https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d) I/flutter (19889) :
      
configuration : —cross-prefix=aarch64-linux-android-
—sysroot=/Users/sue/Library/Android/sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot
—prefix=/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/ffmpeg
—pkg-config=/opt/homebrew/bin/pkg-config —enable-version3 —arch=aarch64 —cpu=armv8-a —target-os=android —enable-neon —enable-asm —enable-inline-asm —ar=aarch64-linux-android-ar —cc=aarch64-linux-android24-clang —cxx=aarch64-linux-android24-clang++ —ranlib=aarch64-linux-android-ranlib —strip=aarch64-linux-android-strip —nm=aarch64-linux-android-nm —extra-libs='-L/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib
-lndk_compat' —disable-autodetect —enable-cross-compile —enable-pic —enable-jni —enable-optimizations —enable-swscale —disable-static —enable-shared —enable-pthreads —enable-v4l2-m2m —disable-outdev=fbdev —disable-indev=fbdev —enable-small —disable-xmm-clobber-test —disable-debug —enable-lto —disable-neon I/flutter (19889) : libavutil 58. 2.100 / 58. 2.100 I/flutter
(19889) : libavcodec 60. 3.100 / 60. 3.100 I/flutter (19889) :
      
libavformat 60. 3.100 / 60. 3.100 I/flutter (19889) :
      
libavdevice 60. 1.100 / 60. 1.100 I/flutter (19889) :
      
libavfilter 9. 3.100 / 9. 3.100 I/flutter (19889) : libswscale
    • 


    


      

    1. 1.100 / 7. 1.100 I/flutter (19889) : libswresample 4. 10.100 / 4. 10.100 I/flutter (19889) : [flv @ 0xb4000074238dac30] Failed to
update header with correct duration. I/flutter (19889) : [flv @
0xb4000074238dac30] Failed to update header with correct filesize.
I/flutter (19889) : Instance of 'Statistics' I/flutter (19889) : frame=
1 fps=0.0 q=28.0 Lsize= 4kB time=00:00:00.00 bitrate=N/A speed=
0x I/flutter (19889) : video:4kB audio:0kB subtitle:0kB other
streams:0kB global headers:0kB muxing overhead : I/flutter (19889) :
8.895621% I/flutter (19889) : I/flutter (19889) : Input #0, png_pipe, from '/data/user/0/com.example.poc_stream/cache/frame.png' : I/flutter
(19889) : Duration : I/flutter (19889) : N/A I/flutter (19889) : ,
bitrate : I/flutter (19889) : N/A I/flutter (19889) : I/flutter
(19889) : Stream #0:0 I/flutter (19889) : : Video : png, rgba(pc),
412x771 I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter
(19889) : 25 tbr, I/flutter (19889) : 25 tbn I/flutter (19889) :
I/flutter (19889) : [libx264 @ 0xb400007363a92e40] frame I:1 Avg
QP:14.17 size : 2957 I/flutter (19889) : [libx264 @
0xb400007363a92e40] mb I I16..4 : 1.4% 93.3% 5.3% I/flutter (19889) :
[libx264 @ 0xb400007363a92e40] 8x8 transform intra:93.3% I/flutter
(19889) : [libx264 @ 0xb400007363a92e40] coded y,u,v intra : 3.4% 1.4%
1.7% I/flutter (19889) : [libx264 @ 0xb400007363a92e40] i16 v,h,dc,p : 78% 17% 6% 0% I/flutter (19889) : [libx264 @ 0xb400007363a92e40] i8
v,h,dc,ddl,ddr,vr,hd,vl,hu : 36% 0% 64% 0% 0% 0% 0% 0% 0%
I/flutter (19889) : [libx264 @ 0xb400007363a92e40] i4
v,h,dc,ddl,ddr,vr,hd,vl,hu : 49% 21% 14% 1% 3% 4% 3% 2% 3%
I/flutter (19889) : [libx264 @ 0xb400007363a92e40] kb/s:591.40
I/flutter (19889) : ffmpeg version n6.0 I/flutter (19889) : Copyright
(c) 2000-2023 the FFmpeg developers I/flutter (19889) : I/flutter
(19889) : built with Android (7155654, based on r399163b1) clang
version 11.0.5
(https://android.googlesource.com/toolchain/llvm-project
87f1315dfbea7c137aa2e6d362dbb457e388158d) I/flutter (19889) :
      
configuration : —cross-prefix=aarch64-linux-android-
—sysroot=/Users/sue/Library/Android/sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot
—prefix=/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/ffmpeg
—pkg-config=/opt/homebrew/bin/pkg-config —enable-version3 —arch=aarch64 —cpu=armv8-a —target-os=android —enable-neon —enable-asm —enable-inline-asm —ar=aarch64-linux-android-ar —cc=aarch64-linux-android24-clang —cxx=aarch64-linux-android24-clang++ —ranlib=aarch64-linux-android-ranlib —strip=aarch64-linux-android-strip —nm=aarch64-linux-android-nm —extra-libs='-L/Users/sue/Projects/arthenica/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib
-lndk_compat' —disable-autodetect —enable-cross-compile —enable-pic —enable-jni —enable-optimizations —enable-swscale —disable-static —enable-shared —enable-pthreads —enable-v4l2-m2m —disable-outdev=fbdev —disable-indev=fbdev —enable-small —disable-xmm-clobber-test —disable-debug —enable-lto —disable-neon I/flutter (19889) : libavutil 58. 2.100 / 58. 2.100 I/flutter
(19889) : libavcodec 60. 3.100 / 60. 3.100 I/flutter (19889) :
      
libavformat 60. 3.100 / 60. 3.100 I/flutter (19889) :
      
libavdevice 60. 1.100 / 60. 1.100 I/flutter (19889) :
      
libavfilter 9. 3.100 / 9. 3.100 I/flutter (19889) : libswscale
    2. 


    3. 1.100 / 7. 1.100 I/flutter (19889) : libswresample 4. 10.100 / 4. 10.100 I/flutter (19889) : Input #0, png_pipe, from
'/data/user/0/com.example.poc_stream/cache/frame.png' : E/flutter
(19889) : [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled
Exception : PlatformException(SESSION_NOT_FOUND, Session not found.,
null, null) E/flutter (19889) : #0
      
StandardMethodCodec.decodeEnvelope
(package:flutter/src/services/message_codecs.dart:648:7) E/flutter
(19889) : #1 MethodChannel._invokeMethod
(package:flutter/src/services/platform_channel.dart:334:18) E/flutter
(19889) : E/flutter (19889) : #2
      
FFmpegKitFactory.mapToNullableSession
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_factory.dart:76:3)
E/flutter (19889) : E/flutter (19889) : #3
      
FFmpegKitInitializer._processCompleteCallbackEvent.
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_flutter_initializer.dart:213:48)
E/flutter (19889) : E/flutter (19889) :
I/flutter (19889) : Duration : I/flutter (19889) : N/A I/flutter
(19889) : , bitrate : I/flutter (19889) : N/A I/flutter (19889) :
I/flutter (19889) : Stream #0:0 I/flutter (19889) : : Video : png,
rgba(pc), 412x771 I/flutter (19889) : , I/flutter (19889) : 25 fps,
I/flutter (19889) : 25 tbr, I/flutter (19889) : 25 tbn I/flutter
(19889) : E/flutter (19889) :
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled
Exception : PlatformException(SESSION_NOT_FOUND, Session not found.,
null, null) E/flutter (19889) : #0
      
StandardMethodCodec.decodeEnvelope
(package:flutter/src/services/message_codecs.dart:648:7) E/flutter
(19889) : #1 MethodChannel._invokeMethod
(package:flutter/src/services/platform_channel.dart:334:18) E/flutter
(19889) : E/flutter (19889) : #2
      
FFmpegKitFactory.mapToNullableSession
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_factory.dart:76:3)
E/flutter (19889) : E/flutter (19889) : #3
      
FFmpegKitInitializer._processCompleteCallbackEvent.
(package:ffmpeg_kit_flutter_min_gpl/src/ffmpeg_kit_flutter_initializer.dart:213:48)
E/flutter (19889) : E/flutter (19889) :
I/flutter (19889) : yzsFZWrI_Iw I/flutter (19889) : currentBc :
yzsFZWrI_Iw I/flutter (19889) : Stream mapping : I/flutter (19889) :
      
Stream #0:0 -> #0:0 I/flutter (19889) : (png (native) -> h264
(libx264)) I/flutter (19889) : I/flutter (19889) : Press [q] to stop,
[?] for help I/flutter (19889) : Stream mapping : I/flutter (19889) :
      
Stream #0:0 -> #0:0 I/flutter (19889) : (png (native) -> h264
(libx264)) I/flutter (19889) : I/flutter (19889) : Press [q] to stop,
[?] for help I/flutter (19889) : [libx264 @ 0xb4000073639665d0] using
cpu capabilities : ARMv8 NEON I/flutter (19889) : [libx264 @
0xb4000073639665d0] profile High 4:4:4 Predictive, level 3.0, 4:4:4,
8-bit I/flutter (19889) : [libx264 @ 0xb4000073639665d0] 264 - core 164
    4. 


    


      

    • H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options : cabac=1 ref=3
deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00
mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0
deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6
lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00 I/flutter (19889) : Output #0, flv, to
'rtmp ://x.rtmp.youtube.com/live2/x7k6-grm1-z15w-tqb7-akrt' : I/flutter
(19889) : Metadata : I/flutter (19889) : encoder :
I/flutter (19889) : Lavf60.3.100 I/flutter (19889) : I/flutter (19889) :
Stream #0:0 I/flutter (19889) : : Video : h264 ([7][0][0][0] / 0x0007),
yuv444p(tv, unknown/bt709/iec61966-2-1, progressive), 412x771, q=2-31
I/flutter (19889) : , I/flutter (19889) : 25 fps, I/flutter (19889) :
1k tbn I/flutter (19889) : I/flutter (19889) : Metadata : I/flutter
(19889) : encoder : I/flutter (19889) : Lavc60.3.100
libx264 I/flutter (19889) :
    •