Skip to content

content

zanxiaofei edited this page Aug 29, 2017 · 3 revisions

短视频生成内容

短视频SDK产出以下内容给App:

  • 普通录制视频
  • 断点拍摄后视频
  • 编辑后成后视频

所有视频内容,App均能拿到视频路径
同时短视频SDK提供接口对可以将视频上传到KS3

1. 录制视频

1.1 普通录制

在录制开始的接口中需要设置视频录制路径,该路径即为录制后视频文件路径

//recordUrl即为录制后视频路径  
boolean startRecord(String recordUrl)

1.2 断点拍摄

在断点拍摄结束的接口中需要设置录制合成的视频路径,该路径即为断点拍摄合成后生成的视频路径
同时在断点拍摄结束的回调中,也返回了合成后的视频路径

 /**
     * 停止断点拍摄
     * @param outputFile 最终生成的文件路径
     * @param listener  文件合成结束回调
     */
    void stopRecord(final String outputFile, final MegerFilesFinishedListener listener)
 public interface MergeFilesFinishedListener {
        //filePath 为合成后视频路径  
        void onFinished(String filePath);
    }

2. 编辑合成后视频

编辑结束后,开始合成的接口会要求输入合成视频的输出路径,该路径即为合成视频文件的路径
同时,合成结束的回调中,也会返回合成后视频路径

    /**
     * 开始合成
     *
     * @param desUrl 合成后视频的存储路径  
     */
    public void startCompose(String desUrl) {
 private KSYEditKit.OnInfoListener mOnInfoListener = new KSYEditKit.OnInfoListener() {
        @Override
        public Object onInfo(int type, String... msgs) {
            Log.d(TAG, "on info:" + type);
            switch (type) {
                case ShortVideoConstants.SHORTVIDEO_COMPOSE_FINISHED: {
                  //msg[0]即为合成后文件路径 
                  break;
                default:
                  break;
              }
            }
        }

3. 多段导入转码后的视频

转码的视频路径均在Demo中设置,转码后的视频均可以拿到

4. m3u8转码mp4后的视频

单个导入m3u8的视频时,通过KSYRemuxKit将m3u8的视频转为mp4,开始转码时需要设置mp4文件路径,该路径即为转码后文件路径
示例代码

     KSYRemuxKit ksyRemuxKit = new KSYRemuxKit();
     ksyRemuxKit.setOnInfoListener(new KSYRemuxKit.OnInfoListener() {
           @Override
           public void onInfo(KSYRemuxKit ksyRemuxKit, int type, String msg) {
                if (type == KSYRemuxKit.INFO_PUBLISHER_STOPPED) {
                          ksyRemuxKit.release();
                          dialog.dismiss();
                          EditActivity.startActivity(ConfigActivity.this, Environment
                                  .getExternalStorageDirectory() + "/newRemux" + ".mp4");
                                  }
                           }
                  });
                  ksyRemuxKit.setOnErrorListener(new KSYRemuxKit.OnErrorListener() {
                        @Override
                        public void onError(KSYRemuxKit ksyRemuxKit, int type, long msg) {
                                ksyRemuxKit.release();
                                dialog.dismiss();
                                Toast.makeText(ConfigActivity.this, "Remux m3u8 " + "failed", Toast.LENGTH_SHORT).show();
                         }
                   });
                  ksyRemuxKit.start(path, Environment.getExternalStorageDirectory() + "/newRemux" + ".mp4");
Clone this wiki locally