Browse Source

add debug log

DevYK 3 years ago
parent
commit
eaf0689e4d

+ 1 - 2
java/src/com.bytesflow.opencv.media/test/OpenCVImageBlurTest.java

@@ -18,7 +18,7 @@ public class OpenCVImageBlurTest {
     "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/qa/20220314/6267824Z0EoT5Pr61RFNcKI07.mp4\",\"clips\":[{\"startTimeMs\":2000,\"endTimeMs\":3000},{\"startTimeMs\":4000,\"endTimeMs\":5000},{\"startTimeMs\":6000,\"endTimeMs\":7000},{\"startTimeMs\":8000,\"endTimeMs\":9000},{\"startTimeMs\":10000,\"endTimeMs\":11000},{\"startTimeMs\":12000,\"endTimeMs\":13000},{\"startTimeMs\":14000,\"endTimeMs\":15000},{\"startTimeMs\":16000,\"endTimeMs\":17000}]}"};
     private static volatile  int vis_index = 0;
     public static void main(String[] args) {
-        int count = 1;
+        int count = 3;
         if (args.length > 0) {
             sIMAGE_PATH = args[0];
             sSO_PATH = args[1];
@@ -36,7 +36,6 @@ public class OpenCVImageBlurTest {
             CountDownLatch countDownLatch = new CountDownLatch(count);
             vis_index = 0;
             for (int i = 0; i < count; i++) {
-//                executorService.execute(new ImageBlurRunable(countDownLatch));
                 executorService.execute(new VisRunable(countDownLatch));
             }
             try {

+ 9 - 1
src/opencv/image_fingerprint.cpp

@@ -37,33 +37,41 @@ AVFrame *cvmatToAvframe(cv::Mat *image, AVFrame *frame) {
 }
 
 const char *fingerprintFromFFAVFrame(AVFrame *frame, int *len) {
+    printf("fingerprintFromFFAVFrame \n");
     if (!frame)return NULL;
     auto img = avframeToCvmat(frame);
     if (img.empty()) {
         printf("image is empty.");
         return NULL;
     }
+    printf("fingerprintFromFFAVFrame 2\n");
 //    std::string str = frame->pts + "";
 //    imshow(str, img);
     int scale_width = 8, scale_height = 8;
     Mat gray, res;
+    printf("fingerprintFromFFAVFrame 3\n");
     //缩放成8x8大小灰度图
     resize(img, res, Size(scale_width, scale_height));
+    printf("fingerprintFromFFAVFrame 4\n");
     cvtColor(res, gray, COLOR_BGR2GRAY);
+    printf("fingerprintFromFFAVFrame 5\n");
     //获取灰度平均值
     double mn = mean(gray)[0];
+    printf("fingerprintFromFFAVFrame 6\n");
     char *buf = (char *) malloc(sizeof(char) * scale_width * scale_height);
+    printf("fingerprintFromFFAVFrame 7\n");
     //得到图像指纹值
     for (int i = 0; i < 8; i++) {
         for (int j = 0; j < 8; j++) {
             buf[i * 8 + j] = (gray.at<unsigned char>(i, j) > mn) ? 1 : 0;
         }
     }
+    printf("fingerprintFromFFAVFrame 8\n");
     *len = scale_width * scale_height;
     return buf;
 }
 
-float fingerprint_compare(const char *arr,const char *arr2, int len) {
+float fingerprint_compare(const char *arr, const char *arr2, int len) {
     int size = len;
     int sim_sum = 0;
     for (int i = 0; i < size; ++i) {

+ 4 - 2
src/utils/video_similarity.cpp

@@ -171,12 +171,14 @@ const char *videoSimilarity2json(VideoSimilarity *videoSimilarity) {
  * @return
  */
 const char *get_video_similarity_list(const char *inputjson) {
+    if (!inputjson)return NULL;
+    printf("get_video_similarity_list=%s \n", inputjson);
     auto *vs = json2VideoSimilarity(inputjson);
     long id = video_similarity_detection_init(vs->videoPath);
-    const char * ret_json = NULL;
+    const char *ret_json = NULL;
     if (id > 0) {
         video_similarity_detection_start(id, 0, AUDIO,
-                                                   &vs->clips);
+                                         &vs->clips);
         video_similarity_detection_close(id);
         ret_json = videoSimilarity2json(vs);
         delete vs;

+ 14 - 47
src/video_similarity_comparison.cpp

@@ -55,47 +55,14 @@ static int *list_sim_compare(std::vector<ImageHashModel *> a, std::vector<ImageH
     return arr;
 }
 
-static void run(){
-
-    const char *input_json = "{\n"
-                             "  \"videoPath\": \"http://rescdn.yishihui.com/longvideo/transcode/video/qa/20220314/6267824Z0EoT5Pr61RFNcKI07.mp4\",\n"
-                             "  \"clips\": [\n"
-//                             "    {\n"
-//                             "      \"startTimeMs\": 87200,\n"
-//                             "      \"endTimeMs\": 88200\n"
-//                             "    },\n"
-//                             "    {\n"
-//                             "      \"startTimeMs\": 174400,\n"
-//                             "      \"endTimeMs\": 175400\n"
-//                             "    },\n"
-//                             "    {\n"
-//                             "      \"startTimeMs\": 261600,\n"
-//                             "      \"endTimeMs\": 262600\n"
-//                             "    },\n"
-//                             "    {\n"
-//                             "      \"startTimeMs\": 348800,\n"
-//                             "      \"endTimeMs\": 349800\n"
-//                             "    },\n"
-//                             "    {\n"
-//                             "      \"startTimeMs\": 436000,\n"
-//                             "      \"endTimeMs\": 437000\n"
-//                             "    },\n"
-//                             "    {\n"
-//                             "      \"startTimeMs\": 523200,\n"
-//                             "      \"endTimeMs\": 524200\n"
-//                             "    },\n"
-//                             "    {\n"
-//                             "      \"startTimeMs\": 610400,\n"
-//                             "      \"endTimeMs\": 611400\n"
-//                             "    },\n"
-                             "    {\n"
-                             "      \"startTimeMs\": 697600,\n"
-                             "      \"endTimeMs\": 698600\n"
-                             "    }\n"
-                             "  ]\n"
-                             "}";
+static void run() {
+
+    const char *input_json = "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/98d447f747814a0f98847c248af4bf9c-1526808861214-safe1594892286.m3u8\",\"clips\":[{\"startTimeMs\":300,\"endTimeMs\":600},{\"startTimeMs\":600,\"endTimeMs\":900},{\"startTimeMs\":900,\"endTimeMs\":1200},{\"startTimeMs\":1200,\"endTimeMs\":1500},{\"startTimeMs\":1500,\"endTimeMs\":1800},{\"startTimeMs\":1800,\"endTimeMs\":2100},{\"startTimeMs\":2100,\"endTimeMs\":2400},{\"startTimeMs\":2400,\"endTimeMs\":2700}]}";
+    input_json = "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/fbef1fb47bc944bb96f2443826d8e882-1526808662951-safe1594890799.m3u8\",\"clips\":[{\"startTimeMs\":1000,\"endTimeMs\":2000},{\"startTimeMs\":2000,\"endTimeMs\":3000},{\"startTimeMs\":3000,\"endTimeMs\":4000},{\"startTimeMs\":4000,\"endTimeMs\":5000},{\"startTimeMs\":5000,\"endTimeMs\":6000},{\"startTimeMs\":6000,\"endTimeMs\":7000},{\"startTimeMs\":7000,\"endTimeMs\":8000},{\"startTimeMs\":8000,\"endTimeMs\":9000}]}";
+    input_json = "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/528f2a602ed0422fa9227e2c943e861c-1526808744013-safe1594892695.m3u8\",\"clips\":[{\"startTimeMs\":1200,\"endTimeMs\":2200},{\"startTimeMs\":2400,\"endTimeMs\":3400},{\"startTimeMs\":3600,\"endTimeMs\":4600},{\"startTimeMs\":4800,\"endTimeMs\":5800},{\"startTimeMs\":6000,\"endTimeMs\":7000},{\"startTimeMs\":7200,\"endTimeMs\":8200},{\"startTimeMs\":8400,\"endTimeMs\":9400},{\"startTimeMs\":9600,\"endTimeMs\":10600}]}";
+    input_json = "{\"videoPath\":\"http://rescdn.yishihui.com/longvideo/transcode/video/df3eedcd69b84e3a8d91456423ea5b01-1526808529358-safe1594895173.m3u8\",\"clips\":[{\"startTimeMs\":2100,\"endTimeMs\":3100},{\"startTimeMs\":4200,\"endTimeMs\":5200},{\"startTimeMs\":6300,\"endTimeMs\":7300},{\"startTimeMs\":8400,\"endTimeMs\":9400},{\"startTimeMs\":10500,\"endTimeMs\":11500},{\"startTimeMs\":12600,\"endTimeMs\":13600},{\"startTimeMs\":14700,\"endTimeMs\":15700},{\"startTimeMs\":16800,\"endTimeMs\":17800}]}";
     const char *ret_json = get_video_similarity_list(input_json);
-    printf("ret_json=%s\n",ret_json);
+    printf("ret_json=%s\n", ret_json);
 }
 
 /**
@@ -163,21 +130,21 @@ int main(int argc, char *argv[]) {
     std::vector<VideoSimilarityModel *> lists[size];
     int split_count = 10;
 //    int total = 3960000;
-    int ii = 1000 * 60*6;
+    int ii = 1000 * 60 * 6;
 
     int start = ii;
     for (int i = 0; i < size; ++i) {
         auto start_time = getCurrentTimeMills();
         start = ii;
         for (int j = 0; j < split_count; ++j) {
-            if (j == 0 || j == split_count-1) {
+            if (j == 0 || j == split_count - 1) {
                 continue;
             }
             auto *item = new VideoSimilarityModel();
             item->startTimeMs = start;
             item->endTimeMs = item->startTimeMs + 1000;
             lists[i].push_back(item);
-            start+=ii;
+            start += ii;
         }
         LOGE(">>>filepath=%s \n", filepath[i]);
         run(filepath[i], &lists[i]);
@@ -194,20 +161,20 @@ int main(int argc, char *argv[]) {
         for (int g = 0; g < lists[j].size(); ++g) {
             int *cur_sim = list_sim_compare(local[g]->hashs, lists[j][g]->hashs);
             int a = cur_sim[0];
-            int b  = cur_sim[1];
+            int b = cur_sim[1];
             test_vis[j][g] = a;
             test_vis_total[j][g] = b;
         }
     }
 
 
-    for (int i = 0; i <size-1; ++i) {
-        int a_t = 0,b_t = 0;
+    for (int i = 0; i < size - 1; ++i) {
+        int a_t = 0, b_t = 0;
         for (int j = 0; j < 8; ++j) {
             a_t += test_vis[i][j];
             b_t += test_vis_total[i][j];
         }
-        LOGE("%s %s 相似度 = %f \n", filepath[6],filepath[i],a_t*1.0/b_t*1.0);
+        LOGE("%s %s 相似度 = %f \n", filepath[6], filepath[i], a_t * 1.0 / b_t * 1.0);
     }
     printf("");