HardwareVideoCodec is an efficient video recording library for Android. Supports software and hardware encode. With it, you can record a video at any resolution, no need to care about camera resolution. Everything is so easy.
@lmy小明 日志有点多,发不了评论,麻烦看一下,我对NDK环境不是很熟练,LLDB CMake NDK 20版本,都是AS上直接装的。
Build command failed.
Error while executing process F:\sdk\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=E:\HardwareVideoCodec-master\rtmp\src\main\jni\Android.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-19 NDK_OUT=E:/HardwareVideoCodec-master/rtmp/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=E:\HardwareVideoCodec-master\rtmp\build\intermediates\ndkBuild\debug\lib E:/HardwareVideoCodec-master/rtmp/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/librtmp.so}
[armeabi-v7a] Compile++ thumb: rtmp <= HandlerThread.cpp
E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/Android.mk:14: librtmp/amf.c librtmp/hashswf.c librtmp/log.c librtmp/parseurl.c librtmp/rtmp.c HandlerThread.cpp Java_com_lmy_rtmp_RtmpClient.cpp Lock.cpp Message.cpp RtmpClient.cpp SpecificData.cpp
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.cpp:7:
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.h:7:
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/BlockQueue.h:10:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\list:183:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\memory:658:
In file included from F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\utility:36:
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:86:30: error: no template named 'pair'
inline bool operator==(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y)
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:86:57: error: no template named 'pair'
inline bool operator==(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y)
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:92:29: error: no template named 'pair'
inline bool operator<(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y)
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:92:56: error: no template named 'pair'
inline bool operator<(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y)
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:99:30: error: no template named 'pair'
inline bool operator!=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) {
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:99:57: error: no template named 'pair'
inline bool operator!=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) {
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:104:29: error: no template named 'pair'
inline bool operator>(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) {
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:104:56: error: no template named 'pair'
inline bool operator>(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) {
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:109:30: error: no template named 'pair'
inline bool operator<=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) {
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:109:57: error: no template named 'pair'
inline bool operator<=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) {
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:114:30: error: no template named 'pair'
inline bool operator>=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) {
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:114:57: error: no template named 'pair'
inline bool operator>=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) {
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:119:8: error: no template named 'pair'
inline pair<_T1, _T2> make_pair(_T1 x, _T2 __y)
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:121:10: error: reference to 'pair' is ambiguous
return pair<_T1, _T2>(x, y);
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:72:8: note: candidate found by name lookup is 'std::pair'
struct pair {
^
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\type_traits:415:61: note: candidate found by name lookup is 'std::__ndk1::pair'
template <class _T1, class _T2> struct _LIBCPP_TEMPLATE_VIS pair;
^
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.cpp:7:
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.h:7:
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/BlockQueue.h:10:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\list:183:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\memory:658:
In file included from F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\utility:36:
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:121:15: error: '_T1' does not refer to a value
return pair<_T1, _T2>(x, __y);
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:118:17: note: declared here
template <class _T1, class _T2>
^
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.cpp:7:
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.h:7:
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/BlockQueue.h:10:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\list:183:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\memory:660:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\iterator:417:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:17:
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\exception:181:5: error: no member named 'abort' in namespace 'std::ndk1'; did you mean simply 'abort'?
_VSTD::abort();
^~~
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\config:804:15: note: expanded from macro '_VSTD'
define _VSTD std::_LIBCPP_ABI_NAMESPACE
^
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\cstdlib:43:9: note: 'abort' declared here
using ::abort;
^
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.cpp:7:
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.h:7:
In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/BlockQueue.h:10:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\list:183:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\memory:660:
In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\iterator:417:
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:81:16: error: no template named 'unary_function'; did you mean 'binary_function'?
static unary_function<_Ap, _Rp>
^
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:28:29: note: 'binary_function' declared here
struct _LIBCPP_TEMPLATE_VIS binary_function
^
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:81:16: error: too few template arguments for class template 'binary_function'
static unary_function<_Ap, _Rp>
^
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:28:29: note: template is declared here
struct _LIBCPP_TEMPLATE_VIS binary_function
^
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:82:31: error: no template named 'unary_function'; did you mean 'binary_function'?
test(const volatile unary_function<_Ap, _Rp>*);
^
F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\functional_base:28:29: note: 'binary_function' declared here
struct _LIBCPP_TEMPLATE_VIS binary_function
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [E:/HardwareVideoCodec-master/rtmp/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/rtmp/HandlerThread.o] Error 1
@lmy小明 日志有点多,发不了评论,麻烦看一下,我对NDK环境不是很熟练,LLDB CMake NDK 20版本,都是AS上直接装的。 Build command failed. Error while executing process F:\sdk\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=E:\HardwareVideoCodec-master\rtmp\src\main\jni\Android.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-19 NDK_OUT=E:/HardwareVideoCodec-master/rtmp/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=E:\HardwareVideoCodec-master\rtmp\build\intermediates\ndkBuild\debug\lib E:/HardwareVideoCodec-master/rtmp/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/librtmp.so} [armeabi-v7a] Compile++ thumb: rtmp <= HandlerThread.cpp
E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/Android.mk:14: librtmp/amf.c librtmp/hashswf.c librtmp/log.c librtmp/parseurl.c librtmp/rtmp.c HandlerThread.cpp Java_com_lmy_rtmp_RtmpClient.cpp Lock.cpp Message.cpp RtmpClient.cpp SpecificData.cpp In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.cpp:7: In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.h:7: In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/BlockQueue.h:10: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\list:183: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\memory:658: In file included from F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\utility:36: F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:86:30: error: no template named 'pair' inline bool operator==(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:86:57: error: no template named 'pair' inline bool operator==(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:92:29: error: no template named 'pair' inline bool operator<(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:92:56: error: no template named 'pair' inline bool operator<(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:99:30: error: no template named 'pair' inline bool operator!=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) { ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:99:57: error: no template named 'pair' inline bool operator!=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) { ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:104:29: error: no template named 'pair' inline bool operator>(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) { ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:104:56: error: no template named 'pair' inline bool operator>(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) { ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:109:30: error: no template named 'pair' inline bool operator<=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) { ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:109:57: error: no template named 'pair' inline bool operator<=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) { ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:114:30: error: no template named 'pair' inline bool operator>=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) { ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:114:57: error: no template named 'pair' inline bool operator>=(const pair<_T1, _T2>& x, const pair<_T1, _T2>& y) { ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:119:8: error: no template named 'pair' inline pair<_T1, _T2> make_pair(_T1 x, _T2 __y) ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:121:10: error: reference to 'pair' is ambiguous return pair<_T1, _T2>(x, y); ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:72:8: note: candidate found by name lookup is 'std::pair' struct pair { ^ F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\type_traits:415:61: note: candidate found by name lookup is 'std::__ndk1::pair' template <class _T1, class _T2> struct _LIBCPP_TEMPLATE_VIS pair; ^ In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.cpp:7: In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.h:7: In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/BlockQueue.h:10: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\list:183: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\memory:658: In file included from F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\utility:36: F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:121:15: error: '_T1' does not refer to a value return pair<_T1, _T2>(x, __y); ^ F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\stl_pair.h:118:17: note: declared here template <class _T1, class _T2> ^ In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.cpp:7: In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.h:7: In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/BlockQueue.h:10: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\list:183: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\memory:660: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\iterator:417: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:17: F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\exception:181:5: error: no member named 'abort' in namespace 'std::ndk1'; did you mean simply 'abort'? _VSTD::abort(); ^
~~ F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\config:804:15: note: expanded from macro '_VSTD'define _VSTD std::_LIBCPP_ABI_NAMESPACE
F:/sdk/ndk-bundle/build//../sources/cxx-stl/system/include\cstdlib:43:9: note: 'abort' declared here using ::abort; ^ In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.cpp:7: In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/HandlerThread.h:7: In file included from E:/HardwareVideoCodec-master/rtmp/src/main/jni/rtmp/BlockQueue.h:10: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\list:183: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\memory:660: In file included from F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\iterator:417: F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:81:16: error: no template named 'unary_function'; did you mean 'binary_function'? static unary_function<_Ap, _Rp> ^ F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:28:29: note: 'binary_function' declared here struct _LIBCPP_TEMPLATE_VIS binary_function ^ F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:81:16: error: too few template arguments for class template 'binary_function' static unary_function<_Ap, _Rp> ^ F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:28:29: note: template is declared here struct _LIBCPP_TEMPLATE_VIS binary_function ^ F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1__functional_base:82:31: error: no template named 'unary_function'; did you mean 'binary_function'? test(const volatile unary_function<_Ap, _Rp>*); ^ F:/sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\functional_base:28:29: note: 'binary_function' declared here struct _LIBCPP_TEMPLATE_VIS binary_function ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make: *** [E:/HardwareVideoCodec-master/rtmp/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/rtmp/HandlerThread.o] Error 1