GithubHelp home page GithubHelp logo

magiclen / ffmpeg-for-magiclen-applications Goto Github PK

View Code? Open in Web Editor NEW
43.0 6.0 13.0 46.78 MB

Modified FFmpeg for MagicLen Applications

License: Other

Makefile 1.42% C 87.17% C++ 0.51% Shell 0.11% Assembly 6.83% Objective-C 3.86% Verilog 0.01% Perl 0.04% Cuda 0.04% Roff 0.01% Awk 0.01% HTML 0.01% Ruby 0.01% Python 0.01%
ffmpeg android linux magiclen

ffmpeg-for-magiclen-applications's Introduction

FFmpeg README

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides means to alter decoded audio and video through a directed graph of connected filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Coding examples are available in the doc/examples directory.

License

FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.

Contributing

Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process and will be ignored.

ffmpeg-for-magiclen-applications's People

Contributors

magiclen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ffmpeg-for-magiclen-applications's Issues

Unknown encoder 'libx264'

Hi I use this command which should work but it's not:

ffmpeg -i rtsp://0.tcp.ngrok.io:15082/stream.sdp1 -vcodec libx264 -vb 150000 -g 60 -vprofile baseline -level 2.1 -acodec aac -ab 64000 -ar 48000 -ac 2 -strict experimental -f mp4 /sdcard/a.mp4

The error says "Unknown encoder 'libx264'"

Did you support x264?

"No Java Virtual Machine has been registered" error

Hello,
I compiled FFmpeg on my machine to enable "mediacodec" library.
This is the command line to configure the compilation:

./configure --cross-prefix=/root/arm64-toolchains-r14b/bin/aarch64-linux-android- --sysroot=/root/arm64-toolchains-r14b/sysroot/ --arch=arm64 --target-os=android --extra-cflags="-pie" --extra-ldflags="-pie" --bindir="$HOME/bin" --enable-gpl --disable-shared --enable-static --enable-runtime-cpudetect --enable-hwaccels --enable-neon --enable-jni --enable-mediacodec --enable-decoder=hevc_mediacodec --enable-omx --enable-nonfree --enable-pthreads

The FFmpeg command line works just fine.
However, when I run FFmpeg with "mediacodec" decoder decode a video sequence I got the error below.
Here is the command I used: "-vcodec hevc_mediacodec -i <video_sequence> -f null /dev/null"

​ffmpeg version 4.0.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.9.x (GCC) 20150123 (prerelease)
Builder magiclen.org
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, matroska,webm, from '/sdcard/hevc.mkv':
Metadata:
COMPATIBLE_BRANDS: iso4hvc1iso6
MAJOR_BRAND : iso4
MINOR_VERSION : 1
ENCODER : Lavf56.3.100
Duration: 00:00:30.10, start: 0.067000, bitrate: 2827 kb/s
Stream #0:0(und): Video: hevc (Main), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn, 29.97 tbc (default)
Metadata:
CREATION_TIME : 2016-02-04 02:54:49
LANGUAGE : und
HANDLER_NAME : [email protected]
[amediaformat @ 0x7fb620f100] No Java virtual machine has been registered
[hevc_mediacodec @ 0x7fb6248a00] Failed to create media format
Stream mapping:
Stream #0:0 -> #0:0 (hevc (hevc_mediacodec) -> wrapped_avframe (native))
Error while opening decoder for input stream #0:0 : Generic error in an external library

Please, is there something wrong in the configuration process or any other thing?
Any little help is welcome.
Thank you in advance

如何編譯出 libffmpeg_arm64.so

大神你好我有購買你的專業版因為我想要增加 x264 x265等功能,
按照你的How to Compile FFmpeg有成功編譯出來,
libavcodec.a ibavfilter.a libavutil.a libswscale.alibavdevice.a libavformat.a libswresample.a
這幾個檔,
請問我要如何將這些檔案打包成 libffmpeg_arm64.so 作為客製化的二進制檔案自己使用,
下面是我的編譯腳本希望大神能指引一些步驟方向,
謝謝

#!/bin/bash
NDK=/home/charles1018/Android/Sdk/ndk-bundle
SYSROOT=$NDK/platforms/android-21/arch-arm64
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
NDK_TOOLCHAIN_ABI="aarch64-linux-android"
CROSS_PREFIX=${TOOLCHAIN}/bin/${NDK_TOOLCHAIN_ABI}-
export CC="${CROSS_PREFIX}21clang"
export CXX="${CROSS_PREFIX}21clang++"
export CPP="${CROSS_PREFIX}cpp"
export LD="${CROSS_PREFIX}ld"
export CCLD="${CROSS_PREFIX}ld "
export CXXLD="${CROSS_PREFIX}ld"
export RANLIB="${CROSS_PREFIX}ranlib"
export STRIP="${CROSS_PREFIX}strip"
export READELF="${CROSS_PREFIX}readelf"
export OBJDUMP="${CROSS_PREFIX}objdump"
export ADDR2LINE="${CROSS_PREFIX}addr2line"
export AR="${CROSS_PREFIX}ar"
export AS="${CROSS_PREFIX}clang"
export OBJCOPY="${CROSS_PREFIX}objcopy"
export ELFEDIT="${CROSS_PREFIX}elfedit"
export DWP="${CROSS_PREFIX}dwp"
export GCONV="${CROSS_PREFIX}gconv"
export GDP="${CROSS_PREFIX}gdb"
export GPROF="${CROSS_PREFIX}gprof"
export NM="${CROSS_PREFIX}nm"
export SIZE="${CROSS_PREFIX}size"
export STRINGS="${CROSS_PREFIX}strings"
build_android()
{
./configure
--prefix=$(pwd)/android/armv8-a
--enable-static
--disable-doc
--disable-ffplay
--disable-ffprobe
--cross-prefix="${CROSS_PREFIX}"
--target-os=android
--arch=arm64
--enable-cross-compile
--sysroot="${SYSROOT}"
--cc=${CC}
--cxx=${CXX}
--as=${AS}
--extra-ldflags="-fPIE -pie"
--extra-libs="-lopus -lm"
--pkg-config="$(which pkg-config)"
--disable-debug
--disable-shared
--enable-gpl
--enable-x264
--enable-x265
--enable-libvpx
--enable-libass
--enable-libopus
--enable-libmp3lame
--enable-libvidstab
--enable-libxvid
--enable-hardcoded-tables
--enable-pic
--enable-version3
--enable-pthreads
make -j4
make install
}
build_android

failed with custom ffmpeg

I've added custom ffmpeg build and got the following error, which is obviously related to the apk:

Unrecognized option 'magiclen.org'.
Error splitting the argument list: Option not found

Error splitting the argument list: Option not found

我下載了 FFmpeg-For-MagicLen-Applications-3.0.2的 ffMpeg源代碼,
和您提供的配置文件,build_arm.sh 在修改了NDK路徑之後, 成功編譯出了arm 和arm_neon 文件夾的libffmpeg.so,但是我在執行libffmpeg.so的時候,提示我如下信息:

Welcome to my website:
https://magiclen.org
Error splitting the argument list: Option not found

我開始以為是編譯so文件的問題,所以我直接使用您編譯的libffmpeg_arm.so
同樣的提示.

另外,
我執行的命令是 /data/data/... libffmpeg.so -version .
我使用您編譯的ffmpeg 2.3 的so文件,是可以成功執行命令行的.
我想使用最新版本的ffmpeg, 我的源代碼MainActivity

期待您的回復.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.