Java 空间媒体注入
经过长时间的搜索,最近我发现了一个空间媒体注入库。该库是google的spatial media injection的副本。谷歌用pythonscrpit开发了这个库,第一个提到的库是我可以在android中使用的C文件。我成功地注入了空间视频,但视频不是由空间音频(即Ambisonic音频)注入的。 我正在寻求帮助,如果有人成功地注入空间音频。 这是注入的起始代码Java 空间媒体注入,java,android,c,spatial,Java,Android,C,Spatial,经过长时间的搜索,最近我发现了一个空间媒体注入库。该库是google的spatial media injection的副本。谷歌用pythonscrpit开发了这个库,第一个提到的库是我可以在android中使用的C文件。我成功地注入了空间视频,但视频不是由空间音频(即Ambisonic音频)注入的。 我正在寻求帮助,如果有人成功地注入空间音频。 这是注入的起始代码 #include <iostream> #include <stdlib.h> #include "par
#include <iostream>
#include <stdlib.h>
#include "parser.h"
#include "metadata_utils.h"
#include "mpeg/box.h"
using namespace std;
#include <string.h>
#include <jni.h>
//int parsefile(string in,string out);
extern "C" {
JNIEXPORT jint JNICALL
Java_com_blackbox_ffmpeg_examples_tools_video_VideoTrimmer_trimvideo(JNIEnv *env, jobject instance, jstring inputfile, jstring outputfile) {
// TODO
SpatialMedia::Parser parser;
parser.getInFile() = "/storage/emulated/0/360 videos/inject_pre.mov";
parser.getOutFile()= "/storage/emulated/0/DCIM/test.mov";
if ( parser.getInFile ( ) == "" ) {
cout << "Please provide an input file." << endl;
exit ( -1 );
}
Utils utils;
if ( parser.getInject ( ) ) {
if ( parser.getOutFile ( ) == "" ) {
cout << "Injecting metadata requires both input and output file." << endl;
exit ( -2 );
}
Metadata md;
std::string &strVideoXML = utils.generate_spherical_xml ( parser.getStereoMode ( ), parser.getCrop ( ) );
md.setVideoXML ( strVideoXML );
if ( parser.getSpatialAudio ( ) )
md.setAudio ( &g_DefAudioMetadata );
if ( strVideoXML.length ( ) > 1 ) {
utils.inject_metadata(parser.getInFile(), parser.getOutFile(), &md);
/* Box *pAudioMediaAtom = new Box() ;
std::fstream inFile ( parser.getInFile().c_str ( ), std::ios::in | std::ios::binary | std::ios::ate );
pAudioMediaAtom->load(inFile,0,inFile.end);
utils.inject_spatial_audio_atom(inFile, pAudioMediaAtom, &g_DefAudioMetadata );
*/ } else
cout << "Failed to generate metadata." << endl;
}
return 0;
}
JNIEXPORT jstring JNICALL
Java_com_blackbox_ffmpeg_examples_tools_video_VideoTrimmer_stringFromJNI(JNIEnv *env, jobject obj) {
string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
}
#包括
#包括
#包括“parser.h”
#包括“metadata_utils.h”
#包括“mpeg/box.h”
使用名称空间std;
#包括
#包括
//int parsefile(字符串输入、字符串输出);
外部“C”{
JNIEXPORT jint JNICALL
Java_com_blackbox_ffmpeg_示例_工具_视频剪辑_剪辑视频(JNIEnv*env、jobject实例、jstring输入文件、jstring输出文件){
//待办事项
空间媒体:解析器;
parser.getinfle()=“/storage/simulated/0/360 videos/inject_pre.mov”;
parser.getOutFile()=“/storage/emulated/0/DCIM/test.mov”;
if(parser.getinfle()=“”){
库特