Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Fontconfig错误:无法加载默认配置文件_Java_Android_Ffmpeg - Fatal编程技术网

Java Fontconfig错误:无法加载默认配置文件

Java Fontconfig错误:无法加载默认配置文件,java,android,ffmpeg,Java,Android,Ffmpeg,我试图在视频中添加文本,但我得到- Fontconfig错误:无法加载默认配置文件 [Parsed_drawtext_0@0xea1aeaa0]无法初始化fontconfig 在cmd下面使用FFmpeg lib添加文本- 字符串[]cmd=新字符串[]{ “-i”、savedVideoFilePath、”-vf、“-drawtext=text=“+””“+时间戳+”“+”: fontfile=/android_asset/fonts/Poppins-Medium.ttf:fontcolor=w

我试图在视频中添加文本,但我得到-

Fontconfig错误:无法加载默认配置文件 [Parsed_drawtext_0@0xea1aeaa0]无法初始化fontconfig

在cmd下面使用FFmpeg lib添加文本-

字符串[]cmd=新字符串[]{ “-i”、savedVideoFilePath、”-vf、“-drawtext=text=“+””“+时间戳+”“+”:
fontfile=/android_asset/fonts/Poppins-Medium.ttf:fontcolor=white: fontsize=24:x=(w-tw)/2:y=(h/PHI)+第四框=0:“,”,“-codec:a”,“复制”, 输出路径}

日志详细信息-

打开过滤器时出错!2019-06-10 18:04:58.027 18678-18678/com.rs.vir.debug E/FFMPEG失败:输出失败: ffmpeg版本n3.0.1版权所有(c)2000-2016 ffmpeg开发者 使用gcc 4.8(gcc)构建 配置:--target os=linux--cross prefix=/home/vagrant/SourceCode/ffmpeg-android/toolschain-android/bin/arm-linux-androideabi- --arch=arm--cpu=cortex-a8--enable runtime-cpudetect--sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolschain-android/sysroot --enable pic--enable-libx264--enable libass--enable libfreetype--enable libfribidi--enable-libmp3lame--enable fontconfig--enable pthreads--disable debug--disable ffserver--enable-version3--enable硬编码表--disable ffplay--disable ffprobe--enable gpl--enable yasm disable doc disable shared enable static--pkg config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config--prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a--extra-cflags='-I/home/vagrant/SourceCode/ffmpeg-android/toolschain-android/include -U_-FORTIFY_-SOURCE-D_-FORTIFY_-SOURCE=2-fno严格溢出-fstack-protector-all'--extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolschain-android/lib -Wl,-z,relro-Wl,-z,现在-pie'-extra libs='-lpng-lexpat-lm'-extra cxflags= libavutil 55。17.103 / 55. 17.103 libavcodec57。24.102 / 57. 24.102 libav57格式。25.100 / 57. 25.100 libav57设备。0.101 / 57. 0.101 libav6。31.100 / 6. 31.100 libsw4。0.100 / 4. 0.100 libswresample2。0.101 / 2. 0.101 Libroc 54。0.100 / 54. 0.100 从“/data/user/0/com.rs.vir.debug/files/vir_Customer/evinv1220720190610303240000/Videos/sample.mp4”输入#0、mov、mp4、m4a、3gp、3g2、mj2: 元数据: 主要品牌:mp42 次要版本:0 兼容品牌:isommp42 创建时间:2019-06-1012:34:55 com.android.version:8.1.0 持续时间:00:00:06.66,开始时间:0.000000,比特率:3724 kb/s 流#0:0(英文):视频:h264(高)(avc1/0x31637661),yuv420p(电视,smpte170m/smpte170m/bt709),720x480,3464 kb/s,SAR 1:1 DAR 3:2,30.04 fps,30 tbr,90k tbn,180k tbc(默认值) 元数据: 轮换:90 创建时间:2019-06-1012:34:55 处理程序名称:VideoHandle 辅助数据: 显示矩阵:旋转-90.00度 流#0:1(英文):音频:aac(LC)(mp4a/0x6134706D),48000 Hz,立体声,fltp,255 kb/s(默认值) 元数据: 创建时间:2019-06-1012:34:55 处理程序名称:SoundHandle Fontconfig错误:无法加载默认配置文件 [Parsed_drawtext_0@0xea1aeaa0]无法初始化fontconfig [AVFilterGraph@0xea1cb040]使用参数初始化筛选器“drawtext”时出错 'text=java.util.GregorianCalendar[time=1560170097814,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=libcore.util.ZoneInfo[id=“Asia/Kolkata”,mRawOffset=19800000,mearleStrawoffset=19800000,mUseDst=false,mDstSavings=0,transitions=5],周的第一天=2,周的第一天=4,纪元=1,年=2019,月=5,年的第周=24,月的第周=2,月的第日=10,年的第日=161,周的第日=2,周的第日=2,上午下午=1,小时=6,天的第小时=18,分钟=4,秒=57,毫秒=814,分区偏移=19800000,DST偏移=0]:
fontfile=/android_asset/fonts/Poppins-Medium.ttf:fontcolor=white: fontsize=24:x=(w-tw)/2:y=(h/PHI)+第四框=0:' 打开过滤器时出错


请给我解决方案。

使用以下方法将文件从资产目录复制到内部存储

private void copyAssets() {
    AssetManager assetManager = getAssets();
    String[] files = null;
try {
    files = assetManager.list("");
} catch (IOException e) {
    Log.e("tag", "Failed to get asset file list.", e);
  }
 for(String filename : files) {
    InputStream in = null;
    OutputStream out = null;
    try {
      in = assetManager.open(filename);

      String outDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/X/Y/Z/" ; 

      File outFile = new File(outDir, filename);

      out = new FileOutputStream(outFile);
      copyFile(in, out);
      in.close();
      in = null;
      out.flush();
      out.close();
        out = null;
      } catch(IOException e) {
          Log.e("tag", "Failed to copy asset file: " + filename, e);
         }       
       }
     }
     private void copyFile(InputStream in, OutputStream out) throws IOException {
        byte[] buffer = new byte[1024];
      int read;
     while((read = in.read(buffer)) != -1){
       out.write(buffer, 0, read);
     }
   }
然后将ttf文件路径传递给ffmpeg命令

String[] cmd = new String[] { "-i", savedVideoFilePath, "-vf", "drawtext=text="+"'"+timeStamp+"'"+": fontfile=<YOUR_DIRECTORY_PATH>/Poppins-Medium.ttf: fontcolor=white: fontsize=24: x=(w-tw)/2: y=(h/PHI)+th box=0:","-codec:a" ,"copy" , output_path };
String[]cmd=newstring[]{“-i”,savedVideoFilePath,“-vf”,“drawtext=text=“+”“+”+时间戳+”“+”:fontfile=/Poppins-Medium.ttf:fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th-box=0:“,”-codec:a”,“copy”,output\u-path};

我们只能使用
”file:///android_assets“
用于android。但是我们不能将其用于本机项目

我使用的字体出现了这个问题,代码更改如下-

   mFileFont = new File("/system/fonts/Roboto-Regular.ttf");
        if (!mFileFont.exists())
            mFileFont = new File("/system/fonts/DroidSerif-Regular.ttf");
   String[] cmd = new String[]{
                "-i", savedVideoFilePath, "-vf", "drawtext=text=" + "'" + todaysdate
                + "'" + ": fontfile=" + mFileFont.getAbsolutePath() + ": 
               fontcolor=white: fontsize=24: x=20: y=50: box=0:", "-codec:a", "copy", 
              "-preset", "ultrafast", "-b:a", "128k", output_path};

/ffmpeg无法使用android_asset/fonts/Poppins-Medium.ttf文件路径。提供外部文件路径外部路径意味着我需要将相同的ttf文件放在不同的文件夹中..?将ttf文件从asset fdirectory存储到设备存储和访问我们可以在任意方向写入多个文本。如右位置顶部的文本abc和左位置顶部的efg。。可能吗?