{"id":17526988,"url":"https://github.com/ap-atul/Torpido","last_synced_at":"2025-03-06T06:31:18.520Z","repository":{"id":39910361,"uuid":"289500938","full_name":"ap-atul/Torpido","owner":"ap-atul","description":"Allows you to edit videos automatically","archived":false,"fork":false,"pushed_at":"2021-06-16T06:17:51.000Z","size":15337,"stargazers_count":42,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-02T15:59:39.601Z","etag":null,"topics":["audio-processing","automation","blur-detection","ffmpeg","ffmpeg-wrapper","ipc","motion-detection","opencv-python","process-management","pyqt5","text-detection","toripido","video-editing","video-processing","wavelet-transform"],"latest_commit_sha":null,"homepage":"https://ap-atul.github.io/torpido/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ap-atul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-22T14:13:45.000Z","updated_at":"2024-08-01T23:30:47.000Z","dependencies_parsed_at":"2022-08-31T15:01:00.198Z","dependency_job_id":null,"html_url":"https://github.com/ap-atul/Torpido","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ap-atul%2FTorpido","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ap-atul%2FTorpido/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ap-atul%2FTorpido/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ap-atul%2FTorpido/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ap-atul","download_url":"https://codeload.github.com/ap-atul/Torpido/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242161609,"owners_count":20081907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-processing","automation","blur-detection","ffmpeg","ffmpeg-wrapper","ipc","motion-detection","opencv-python","process-management","pyqt5","text-detection","toripido","video-editing","video-processing","wavelet-transform"],"created_at":"2024-10-20T15:02:45.045Z","updated_at":"2025-03-06T06:31:18.508Z","avatar_url":"https://github.com/ap-atul.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"![logo](https://github.com/AP-Atul/Torpido/blob/master/img/torpido.png)\n\n## Introduction\nAs we progress in this digital life concept, everyone tries to create contents plus they almost shoot\neverything moreover they spend a whole lot of time in editing and making that content watchable.\n\nThis raw content requires a lot of cleaning and tuning to make the final output easy to understand and\ncontains highlights to regions of interest, which then can be posted on media sites like Youtube,\nInstagram, Twitter, etc.\n\nSo we provide a solution to automate the task by using various methods to analyze audio and video\naspects of the raw video and generate a better and summarized output content, expected by any user.\n\n\n## How are we doing this?\nAutomated summarization of digital Video Sequences is accomplished using a vector rank filter. The\noutput of the rank vector is determined by the minimum rank to be given to the input sequence. And the\nselection of the max ranking subset which is continuous and satisfies the minimum ranking.\n\nEach frame in a Video Segment can be ranked according to its feature significance. Using all these\nfeatures to generate a ranking vector for each such feature.\n\nApplying filter on the final summation of all the ranked feature vectors to extract subsequences on the\nvector.\n\n\n## Which features are we talking about?\n### 1. Visual \n#### Motion \n* Every video has some moments. Nobody wants to see an idle image as a video. So proposing\na motion feature ranking. The amount of motion determines the rank for the FRAME in the\nsequence.\n* The rank is set to 0 if the motion is below a certain threshold\n\n#### Blur\n* Determining the sharpness of the video FRAME, to rank the subsequence.\n* If the sharpness is below a certain threshold ranking is set to 0.\n----------------------\n### 2. Auditory \n#### Audio energy\n* Ranking the video sequence based on the audio activity i.e. talking, sound, music. etc.\n* A certain threshold will determine whether to rank the sequence or not\n\n#### De-noising\n* Audio will be denoised using Wavelet Transform\n----------------------\n### 3. Textual\n#### Text Detection\n* Ranking the video sequence based on the text detected in the video\n* If text is detected rank gets added or else 0 is added\n\n#### EAST model\n* The east model of the OpenCV will be used to detect the text in the video.\n\n\n## Basic Working\n\n```\n- Start\n- Accepts video from the user\n- Reads the video [All processes below are parallel]\n\n    - Processes the video stream for [Visual] :\n        - Motion ranking, no motion will be ranked 0\n        - Blur detection, blur detected ranked 0\n\n    - Processes the video stream for [Textual] :\n        - Text detection, high rank for text detected\n\n    - Processes the audio stream for [Auditory] :\n        - Audio de-noising with DWT \u0026 FWT\n        - Audio activity ranking\n\n- Calculate the sum of all ranks\n- Select slices satisfying min rank\n- Make trims to video using the ranks time stamps\n- End\n```\n\n\n## Applications\n\n1. Automatic video editing for any video\n2. Security footage extraction of importance parts\n3. Tutoring video, with text detection and motion it can extract good amount\n4. In general video editing\n5. Audio de-noising of vlogging videos\n\n\n## Architecture\n![arch](https://github.com/AP-Atul/Torpido/blob/master/img/arch.png)\n\n\n## Screens\n\n![window](https://github.com/AP-Atul/Torpido/blob/master/img/window.png)\n\n## Sample Test\n\n[![Input video](https://img.youtube.com/vi/mS1yLQg0Vb0/0.jpg)](https://www.youtube.com/watch?v=mS1yLQg0Vb0)\n[![Edited video](https://img.youtube.com/vi/6BI9O0n-Wso/0.jpg)](https://www.youtube.com/watch?v=6BI9O0n-Wso)\n\n\n## Docs\n\nFor all docs visit [torpido](https://ap-atul.github.io/torpido/)\n\nFor dev logs visit [logs](https://github.com/AP-Atul/Torpido/tree/master/logs)\n\n## Execution\n* Install ffmpeg\n```\n$ sudo apt install ffmpeg\n```\n\n* Install all the dependencies\n```\n$ pip install -r requirements.txt\n```\n\n* Compile the cython files\n```\n$ python setup.py build_ext --inplace\n```\n\n* Download EAST model and add it to the path\n```\n$ wget  https://www.dropbox.com/s/r2ingd0l3zt8hxs/frozen_east_text_detection.tar.gz?dl=1\n$ tar -xvf frozen_east_text_detection.tar.gz\n\n// set environment variable\n$ sudo gedit /etc/environment\n\n// add new var\nEAST_MODEL=\"path_to_frozen_east_text_detection.pb\"\n\n// test the var\n$ echo $EAST_MODEL\n```\n\n* Run the run.py using some video file\n```\n$ python run.py /example/sample.mp4\n\n// or with ui\n$ python3 start_up.py\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fap-atul%2FTorpido","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fap-atul%2FTorpido","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fap-atul%2FTorpido/lists"}