|
@@ -19,9 +19,6 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.http.impl.cookie.BasicClientCookie;
|
|
|
-import org.bytedeco.javacv.FFmpegFrameGrabber;
|
|
|
-import org.bytedeco.javacv.Frame;
|
|
|
-import org.bytedeco.javacv.Java2DFrameConverter;
|
|
|
import org.openqa.selenium.Cookie;
|
|
|
import org.openqa.selenium.WebDriver;
|
|
|
import org.openqa.selenium.chrome.ChromeDriver;
|
|
@@ -30,13 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import javax.imageio.ImageIO;
|
|
|
-import java.awt.*;
|
|
|
-import java.awt.image.BufferedImage;
|
|
|
-import java.io.ByteArrayOutputStream;
|
|
|
import java.net.HttpURLConnection;
|
|
|
import java.net.URL;
|
|
|
-import java.util.List;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Service
|
|
@@ -90,11 +82,11 @@ public class OceanEngineServiceImpl implements IOceanEngineService {
|
|
|
material.setVideoUrl(getVideoUrl(material.getVid()));
|
|
|
}
|
|
|
// material.setVideoUrl(getVideoUrl(material.getVid()));
|
|
|
- material.setCoverImage(getVideoFirstImage(material.getVideoUrl()));
|
|
|
- if(material.getCoverImage() == null){
|
|
|
- Thread.sleep(1000);
|
|
|
- material.setCoverImage(getVideoFirstImage(material.getVideoUrl()));
|
|
|
- }
|
|
|
+// material.setCoverImage(FfmpegUtils.getVideoFirstImage(material.getVideoUrl()));
|
|
|
+// if(material.getCoverImage() == null){
|
|
|
+// Thread.sleep(1000);
|
|
|
+// material.setCoverImage(FfmpegUtils.getVideoFirstImage(material.getVideoUrl()));
|
|
|
+// }
|
|
|
hotMaterialService.saveOrUpdate(material);
|
|
|
}
|
|
|
hotMaterialHandler(page+1,appCode,appName);
|
|
@@ -124,9 +116,7 @@ public class OceanEngineServiceImpl implements IOceanEngineService {
|
|
|
@Override
|
|
|
public void effectCaseHandler(int page){
|
|
|
String result = HttpUtils2.httpGetRequest("https://cc.oceanengine.com/creative_center_server/api/case/effect_case_list?industry=0&style=0&mode=0&page="+page+"&limit=20");
|
|
|
- System.out.println(result);
|
|
|
try {
|
|
|
- ObjectMapper mapper = new ObjectMapper();
|
|
|
JSONObject node = JSONObject.parseObject(result);
|
|
|
Integer code = node.getInteger("code");
|
|
|
String message = node.getString("msg");
|
|
@@ -159,11 +149,11 @@ public class OceanEngineServiceImpl implements IOceanEngineService {
|
|
|
if (effectCase.getVideoUrl() == null){
|
|
|
effectCase.setVideoUrl(getVideoUrl(effectCase.getVid()));
|
|
|
}
|
|
|
- effectCase.setCoverImage(getVideoFirstImage(effectCase.getVideoUrl()));
|
|
|
- if (effectCase.getCoverImage() == null){
|
|
|
- Thread.sleep(1000);
|
|
|
- effectCase.setCoverImage(getVideoFirstImage(effectCase.getVideoUrl()));
|
|
|
- }
|
|
|
+// effectCase.setCoverImage(FfmpegUtils.getVideoFirstImage(effectCase.getVideoUrl()));
|
|
|
+// if (effectCase.getCoverImage() == null){
|
|
|
+// Thread.sleep(1000);
|
|
|
+// effectCase.setCoverImage(FfmpegUtils.getVideoFirstImage(effectCase.getVideoUrl()));
|
|
|
+// }
|
|
|
effectCase.setCreativeLabel(getCase.getString("creative_label"));
|
|
|
}
|
|
|
effectCaseService.saveOrUpdate(effectCase);
|
|
@@ -177,48 +167,6 @@ public class OceanEngineServiceImpl implements IOceanEngineService {
|
|
|
@Autowired
|
|
|
private IEffectCaseService effectCaseService;
|
|
|
|
|
|
- public String getVideoFirstImage(String url){
|
|
|
- try {
|
|
|
- FFmpegFrameGrabber ff = new FFmpegFrameGrabber(url);
|
|
|
- ff.start();
|
|
|
- int lenght = ff.getLengthInFrames();
|
|
|
- int i = 0;
|
|
|
- Frame f = null;
|
|
|
- while (i < lenght) {
|
|
|
-// 过滤前5帧,避免出现全黑的图片,依自己情况而定
|
|
|
- f = ff.grabFrame();
|
|
|
- if ((i > 5) && (f.image != null)) {
|
|
|
- break;
|
|
|
- }
|
|
|
- i++;
|
|
|
- }
|
|
|
-// opencv_core.IplImage img = f.image;
|
|
|
- int owidth = f.imageWidth;
|
|
|
- int oheight = f.imageHeight;
|
|
|
- Java2DFrameConverter converter =new Java2DFrameConverter();
|
|
|
- BufferedImage fecthedImage =converter.getBufferedImage(f);
|
|
|
-// 对截取的帧进行等比例缩放
|
|
|
- int width = 800;
|
|
|
- int height = (int) (((double) width / owidth) * oheight);
|
|
|
- BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
|
|
|
- bi.getGraphics().drawImage(fecthedImage.getScaledInstance(width, height, Image.SCALE_SMOOTH),
|
|
|
- 0, 0, null);
|
|
|
- ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流
|
|
|
- ImageIO.write(bi, "jpg", baos);
|
|
|
- byte[] bytes = baos.toByteArray();//转换成字节
|
|
|
- String png_base64 = Base64.getEncoder().encodeToString(bytes).trim();//转换成base64串
|
|
|
- png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n
|
|
|
- // ImageIO.write(bufferedImage, "png", new File("D:/qrcode1.png"));
|
|
|
- baos.close();
|
|
|
- ff.close();
|
|
|
- return "data:image/jpg;base64,"+png_base64;
|
|
|
- }catch (Exception e){
|
|
|
- e.printStackTrace();
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
@Autowired
|
|
|
private IDouyinHotService douyinHotService;
|
|
|
@Override
|
|
@@ -238,11 +186,11 @@ public class OceanEngineServiceImpl implements IOceanEngineService {
|
|
|
if(douyinHot.getUrl() == null){
|
|
|
douyinHot.setUrl(getVideoUrl(douyinHot.getVideoId()));
|
|
|
}
|
|
|
- douyinHot.setCoverImage(getVideoFirstImage(douyinHot.getUrl()));
|
|
|
- if(douyinHot.getCoverImage() == null){
|
|
|
- Thread.sleep(1000);
|
|
|
- douyinHot.setCoverImage(getVideoFirstImage(douyinHot.getUrl()));
|
|
|
- }
|
|
|
+// douyinHot.setCoverImage(FfmpegUtils.getVideoFirstImage(douyinHot.getUrl()));
|
|
|
+// if(douyinHot.getCoverImage() == null){
|
|
|
+// Thread.sleep(1000);
|
|
|
+// douyinHot.setCoverImage(FfmpegUtils.getVideoFirstImage(douyinHot.getUrl()));
|
|
|
+// }
|
|
|
douyinHotService.saveOrUpdate(douyinHot);
|
|
|
}
|
|
|
douyinHotHandler(page+1,listType);
|