收藏
回答

关于通过微信创建永久素材,上传视频的问题

视频文件通过ffmpeg代码压缩后,调用微信永久素材创建接口上传,接口返回-1,system error hint;
但是使用平台接口调试工具上传压缩后的视频文件却一切正常;
最后一次编辑于  01-15
回答关注问题邀请回答
收藏

2 个回答

  • 初心
    初心
    01-15

    能发下你的代码部分么

    01-15
    赞同
    回复 5
    • 任帅
      任帅
      01-15
      package com.ai.ecs.wchartmanager.common.util;
      import it.sauronsoftware.jave.*;
      import java.io.File;
      /**
       * Created by ${renshuai} on 2020/1/8.
       */
      public class VideoUtils {
          private static final int bitRate = 64000;
          private static final int samplingRate = 22050;
          private static final int videoBitRate = 160000;
          private static final int frameRate = 15;
          private static final int videoWidth = 300;
          private static final int videoHeight = 600;
          private final static long MAX_VIDEO_BYTE = 10485760;
          public static File yasuo(File source,File target){
              try {
                  // 音频编码设置
                  AudioAttributes audio = new AudioAttributes();
                  audio.setCodec("libmp3lame");
                  audio.setBitRate(new Integer(bitRate));
                  audio.setChannels(new Integer(1));
                  audio.setSamplingRate(new Integer(samplingRate));
                  // 视频编码设置
                  VideoAttributes video = new VideoAttributes();
                  video.setCodec("mpeg4");
                  video.setBitRate(new Integer(videoBitRate));
                  video.setFrameRate(new Integer(frameRate));
                  video.setSize(new VideoSize(videoWidth, videoHeight));
                  // 视频转码编码设置
                  EncodingAttributes attrs = new EncodingAttributes();
                  attrs.setFormat("mp4");
                  attrs.setAudioAttributes(audio);
                  attrs.setVideoAttributes(video);
                  // 编码器
                  Encoder encoder = new Encoder();
                  encoder.encode(source, target, attrs);
                  return target;
              } catch (Exception e) {
                  e.printStackTrace();
              }
              return null;
          }
          public static void main(String[] args){
              File source = new File("F:/workspace/xinjiang/test.mp4");
              File target = new File("F:/workspace/xinjiang/test1.mp4");
              yasuo(source,target);
          }
      }
      01-15
      回复
    • 任帅
      任帅
      01-15
      attrs.setFormat("mp4");  改成 attrs.setFormat("mpeg");
      压缩后的文件可以通过接口传上去,但是这样的文件是不能播放的;
      01-15
      回复
    • 初心
      初心
      01-15回复任帅
      嗯,文档里面没有说支持压缩上传,我没试过压缩上传的,你可以试下直接上传mp4格式视频看下好不好使
      01-15
      回复
    • 任帅
      任帅
      01-15回复初心
      没办法,客户一般要上传的视频文件都是20M左右的;微信接口只能上传10M的;所以只能压缩。
      01-15
      回复
    • 初心
      初心
      01-15回复任帅
      这样可以考虑下分割视频,分步上传,
      01-15
      回复
  • 任帅
    任帅
    01-15

    项目比较紧急,求解答。

    01-15
    赞同
    回复
登录 后发表内容
问题标签