Comments (7)
Pixel aspect ratio is queried using OpenCV when the video loads since MoviePy doesn't support it yet, so the same messages will show up currently. In the next release I'll make it so this is only done when required (for save-images
). I'll also look if suppressing these warnings is feasible so a better error message can be printed.
Thanks for the report!
from pyscenedetect.
I did a quick test, and you can use the MoviePy backend to do this, as it uses the ffmpeg executable on your system for this purpose. Right now it will print some warnings about being unable to determine aspect ratio, but these can be ignored for most purposes. This requires you to have MoviePy installed on your system as well as the latest version of PySceneDetect.
This option isn't documented right now since it's under development, but you can try it out as follows with the latest version of PySceneDetect:
scenedetect -i script.avs -b moviepy detect-content
Note this isn't included in Windows builds yet, so you'll need to install PySceneDetect from pip
and then also install MoviePy to enable it. When installed correctly, you should see it show up when you run scenedetect version
. Aside from the warnings, it seems to work well with the save-images
and split-video
commands. Feel free to try it out and let me know how it works out for you, and if you run into any other issues.
from pyscenedetect.
Thanks for the information!
I did a quick test as well, and got it running. I got a couple of other errors but at least it's scanning right now. In fact that first line is the same error I got when trying to use the API with Avisynth script as video source.
[ERROR:[email protected]] global cap_ffmpeg_impl.hpp:1237 open Could not find decoder for codec_id=192
[ERROR:[email protected]] global cap_ffmpeg_impl.hpp:1286 open VIDEOIO/FFMPEG: Failed to initialize VideoCapture
[ERROR:[email protected]] global cap.cpp:166 cv::VideoCapture::open VIDEOIO(CV_IMAGES): raised OpenCV exception:
OpenCV(4.8.0) D:\a\opencv-python\opencv-python\opencv\modules\videoio\src\cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): f:\temp\captures\withnail.avs in function 'cv::icvExtractPattern'
from pyscenedetect.
One more question regarding the detection: does detect-adaptive do a 2-pass process internally or is it supposed to scan the source twice? I tried it shortly and it (visibly) ran one pass and then printed out the scene change list. This test source I'm using has some luma flicker between frames and triggers false detections easily so I thought the adaptive method might be a best general option to use.
from pyscenedetect.
I guess that the automatic calculation of kernel-size is also not working, seems to be None in the debug output.
from pyscenedetect.
detect-adaptive
used to be a two-pass algorithm, but I made it a single pass in v0.6.2. On the command line, the final scene list is always printed at the end once processing is complete. Regarding kernel size, None
means kernel size will be calculated automatically. I should probably update the API to allow disabling it, and make the auto part more explicit.
from pyscenedetect.
I possibly found a bug while testing my script.
scenedetect -i f:\temp\captures\malone.avs -b moviepy -o c:\temp detect-adaptive -t 2 -m 64 list-scenes -f test.csv
creates a 28 frames long scene as the first one.
Timecode List:,00:00:01.168,00:00:09.051,00:00:27.110,00:00:51.635,00:00:58.392,00:01:59.786,00:02:23.268,00:02:28.940,00:02:34.988,00:02:40.577,00:02:47.125,00:04:38.653,00:05:04.095,00:05:08.725,00:05:17.943,00:05:30.121,00:05:37.295,00:05:43.593,00:05:46.346,00:05:49.224,00:06:03.113,00:06:05.865,00:06:09.369,00:06:16.585,00:06:23.800,00:06:33.560,00:06:38.440,00:06:41.776,00:06:45.697,00:06:48.950 Scene Number,Start Frame,Start Timecode,Start Time (seconds),End Frame,End Timecode,End Time (seconds),Length (frames),Length (timecode),Length (seconds) 1,1,00:00:00.000,0.000,28,00:00:01.168,1.168,28,00:00:01.168,1.168 2,29,00:00:01.168,1.168,217,00:00:09.051,9.051,189,00:00:07.883,7.883 3,218,00:00:09.051,9.051,650,00:00:27.110,27.110,433,00:00:18.060,18.060 4,651,00:00:27.110,27.110,1238,00:00:51.635,51.635,588,00:00:24.524,24.524 5,1239,00:00:51.635,51.635,1400,00:00:58.392,58.392,162,00:00:06.757,6.757 6,1401,00:00:58.392,58.392,2872,00:01:59.786,119.786,1472,00:01:01.395,61.395 7,2873,00:01:59.786,119.786,3435,00:02:23.268,143.268,563,00:00:23.482,23.482 8,3436,00:02:23.268,143.268,3571,00:02:28.940,148.940,136,00:00:05.672,5.672 9,3572,00:02:28.940,148.940,3716,00:02:34.988,154.988,145,00:00:06.048,6.048 10,3717,00:02:34.988,154.988,3850,00:02:40.577,160.577,134,00:00:05.589,5.589 11,3851,00:02:40.577,160.577,4007,00:02:47.125,167.125,157,00:00:06.548,6.548 12,4008,00:02:47.125,167.125,6681,00:04:38.653,278.653,2674,00:01:51.528,111.528 13,6682,00:04:38.653,278.653,7291,00:05:04.095,304.095,610,00:00:25.442,25.442 14,7292,00:05:04.095,304.095,7402,00:05:08.725,308.725,111,00:00:04.630,4.630 15,7403,00:05:08.725,308.725,7623,00:05:17.943,317.943,221,00:00:09.218,9.218 16,7624,00:05:17.943,317.943,7915,00:05:30.121,330.121,292,00:00:12.179,12.179 17,7916,00:05:30.121,330.121,8087,00:05:37.295,337.295,172,00:00:07.174,7.174 18,8088,00:05:37.295,337.295,8238,00:05:43.593,343.593,151,00:00:06.298,6.298 19,8239,00:05:43.593,343.593,8304,00:05:46.346,346.346,66,00:00:02.753,2.753 20,8305,00:05:46.346,346.346,8373,00:05:49.224,349.224,69,00:00:02.878,2.878 21,8374,00:05:49.224,349.224,8706,00:06:03.113,363.113,333,00:00:13.889,13.889 22,8707,00:06:03.113,363.113,8772,00:06:05.865,365.865,66,00:00:02.753,2.753 23,8773,00:06:05.865,365.865,8856,00:06:09.369,369.369,84,00:00:03.503,3.503 24,8857,00:06:09.369,369.369,9029,00:06:16.585,376.585,173,00:00:07.216,7.216 25,9030,00:06:16.585,376.585,9202,00:06:23.800,383.800,173,00:00:07.216,7.216 26,9203,00:06:23.800,383.800,9436,00:06:33.560,393.560,234,00:00:09.760,9.760 27,9437,00:06:33.560,393.560,9553,00:06:38.440,398.440,117,00:00:04.880,4.880 28,9554,00:06:38.440,398.440,9633,00:06:41.776,401.776,80,00:00:03.337,3.337 29,9634,00:06:41.776,401.776,9727,00:06:45.697,405.697,94,00:00:03.921,3.921 30,9728,00:06:45.697,405.697,9805,00:06:48.950,408.950,78,00:00:03.253,3.253 31,9806,00:06:48.950,408.950,10000,00:06:57.083,417.083,195,00:00:08.133,8.133
It might also be better to use 0 as the first frame since that is probably the most common way.
from pyscenedetect.
Related Issues (20)
- Fix Github license detection
- How run it with asyncio and fastapi
- The performance of detecting shot changes is poor HOT 5
- Change `list-scenes` defaults: don't output file, skip cuts
- [Bug] memory leak HOT 9
- Ignore time intervals HOT 5
- Remove this issue please
- How to detect entire scenes and not only shot changes? HOT 1
- Add StreamJoiner to concatenate multiple videos
- Inconsistent error handling when start time exceeds video length
- url input ,1080p video much slower HOT 8
- Use csv as input for scene splitting HOT 1
- No output to list-scenes HOT 3
- horizontal wipe cuts
- ffmpeg segment_times options HOT 4
- QP file output HOT 4
- Can't get save_images to work HOT 1
- 'Error splitting video (ffmpeg returned 1) ' occurs while using 'split_video_ffmpeg' HOT 6
- Define minimum and maximum number of splits in split-video HOT 1
- Extend image_name_template to allow timestamp HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyscenedetect.