I’m currently connecting to a rstp stream from an external device decoding a h264 format using ffmpeg on an iOS device developing on Xcode 7.3. The FFMpeg library worked well for the 32bit version but after the need to convert it to 64bit i’ve been receiving random green flashes/flickers while displaying this rtsp stream.
I have converted the FFMPEG library using this this link - https://github.com/kewlbear/FFmpeg-iOS-build-script - to 64bit. My current configuration is as follows. I’ve attached my current build script with the configuration i’m using. I’ve checked the logs, no corrupt frames or messages are printed during the flickering. I’ve tried changing the configuration at build time of the FFMPEG library . I’m stumped on the solution any help and guidance in the right direction would be great. ===================== #!/bin/sh # directories SOURCE="ffmpeg-3.0" FAT="FFmpeg-iOS" SCRATCH="scratch" # must be an absolute path THIN=`pwd`/"thin" # absolute path to x264 library #X264=`pwd`/fat-x264 #FDK_AAC=`pwd`/fdk-aac/fdk-aac-ios CONFIGURE_FLAGS="--enable-cross-compile --disable-debug --disable-programs \ --disable-doc --enable-pic" if [ "$X264" ] then CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-gpl --enable-libx264" fi if [ "$FDK_AAC" ] then CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libfdk-aac" fi # avresample #CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-avresample" ARCHS="arm64 armv7 armv7s x86_64 i386" COMPILE="y" LIPO="y" DEPLOYMENT_TARGET="6.0" if [ "$*" ] then if [ "$*" = "lipo" ] then # skip compile COMPILE= else ARCHS="$*" if [ $# -eq 1 ] then # skip lipo LIPO= fi fi fi if [ "$COMPILE" ] then if [ ! `which yasm` ] then echo 'Yasm not found' if [ ! `which brew` ] then echo 'Homebrew not found. Trying to install...' ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" \ || exit 1 fi echo 'Trying to install Yasm...' brew install yasm || exit 1 fi if [ ! `which gas-preprocessor.pl` ] then echo 'gas-preprocessor.pl not found. Trying to install...' (curl -L https://github.com/libav/gas-preprocessor/raw/master/gas-preprocessor.pl \ -o /usr/local/bin/gas-preprocessor.pl \ && chmod +x /usr/local/bin/gas-preprocessor.pl) \ || exit 1 fi if [ ! -r $SOURCE ] then echo 'FFmpeg source not found. Trying to download...' curl http://www.ffmpeg.org/releases/$SOURCE.tar.bz2 | tar xj \ || exit 1 fi CWD=`pwd` for ARCH in $ARCHS do echo "building $ARCH..." mkdir -p "$SCRATCH/$ARCH" cd "$SCRATCH/$ARCH" CFLAGS="-arch $ARCH" if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ] then PLATFORM="iPhoneSimulator" CFLAGS="$CFLAGS -mios-simulator-version-min=$DEPLOYMENT_TARGET" else PLATFORM="iPhoneOS" CFLAGS="$CFLAGS -mios-version-min=$DEPLOYMENT_TARGET -fembed-bitcode" if [ "$ARCH" = "arm64" ] then EXPORT="GASPP_FIX_XCODE5=1" fi fi XCRUN_SDK=`echo $PLATFORM | tr '[:upper:]' '[:lower:]'` CC="xcrun -sdk $XCRUN_SDK clang" CXXFLAGS="$CFLAGS" LDFLAGS="$CFLAGS" if [ "$X264" ] then CFLAGS="$CFLAGS -I$X264/include" LDFLAGS="$LDFLAGS -L$X264/lib" fi if [ "$FDK_AAC" ] then CFLAGS="$CFLAGS -I$FDK_AAC/include" LDFLAGS="$LDFLAGS -L$FDK_AAC/lib" fi TMPDIR=${TMPDIR/%\/} $CWD/$SOURCE/configure \ --target-os=darwin \ --disable-everything \ --disable-asm \ --disable-doc \ --disable-shared \ --enable-static \ --enable-decoder=aac \ --enable-decoder=mpegvideo \ --enable-decoder=h264 \ --enable-parser=h264 \ --enable-parser=aac \ --enable-parser=aac_latm \ --enable-parser=mpeg4video \ --enable-parser=mpegvideo \ --enable-demuxer=aac \ --enable-demuxer=mpegvideo \ --enable-demuxer=sdp \ --enable-demuxer=h264 \ --enable-demuxer=rtsp \ --enable-demuxer=rtp \ --enable-protocol=rtp \ --fatal-warnings \ --arch=$ARCH \ --cc="$CC" \ $CONFIGURE_FLAGS \ --extra-cflags="$CFLAGS" \ --extra-ldflags="$LDFLAGS" \ --prefix="$THIN/$ARCH" \ || exit 1 make -j3 install $EXPORT || exit 1 cd $CWD done fi if [ "$LIPO" ] then echo "building fat binaries..." mkdir -p $FAT/lib set - $ARCHS CWD=`pwd` cd $THIN/$1/lib for LIB in *.a do cd $CWD echo lipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIB 1>&2 lipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIB || exit 1 done cd $CWD cp -rf $THIN/$1/include $FAT fi echo Done ========================== Begin forwarded message: From: Dee Bitros <[email protected]<mailto:[email protected]>> Date: 26 April 2016 at 4:39:25 PM NZST To: "This list is about using libavcodec, libavformat, libavutil, libavdevice and libavfilter." <[email protected]<mailto:[email protected]>> Subject: [Libav-user] Green Flicker/Flash iOS I’m currently connecting to a rstp stream from an external device decoding a h264 format using ffmpeg on an iOS device developing on Xcode 7.3. The FFMpeg library worked well for the 32bit version but after the need to convert it to 64bit i’ve been receiving random green flashes/flickers while displaying this rtsp stream. I have converted the FFMPEG library using this this link - https://github.com/kewlbear/FFmpeg-iOS-build-script - to 64bit. My current configuration is as follows. I’ve attached my current build script with the configuration i’m using. I’ve checked the logs, no corrupt frames or messages are printed during the flickering. I’ve tried changing the configuration at build time of the FFMPEG library . I’m stumped on the solution any help and guidance in the right direction would be great. From: Postmaster Date: 26 April 2016 at 4:39:34 PM NZST To: "libav-user@" <[email protected]<mailto:[email protected]>> Subject: bscript.txt Attachment Notice The following attachment was removed from the associated email message. File Name bscript.txt File Size 4065 Bytes Attachment management policies limit the types of attachments that are allowed to pass through the email infrastructure. Attachments are monitored and audited for security reasons. _______________________________________________ Libav-user mailing list [email protected]<mailto:[email protected]> http://ffmpeg.org/mailman/listinfo/libav-user
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
