ffmpeg scene detection scripts updated to include timecodes in clip names

Поділитися
Вставка
  • Опубліковано 1 жов 2024

КОМЕНТАРІ • 9

  • @stevelsibbitt
    @stevelsibbitt Рік тому +1

    You are phenomenal. I have watched some of your prior videos but never implemented anything other than combining audio/video files. It's time to take advantage of your hard work and establish a solid ffmpeg suite on my Windows 10. Other than the hour-long video from 2021, what videos should I watch to create the ffmpeg suite so that I can automatically split clips like you are doing? Also, are you using Linux or a Windows-based terminal in your videos? Thank you for your time and the production of such informative videos.

    • @NapoleonWils0n
      @NapoleonWils0n  Рік тому

      Hi Mate, cheers thanks a lot for the feedback
      I would recommend using wsl on windows if possible to install ffmpeg and the scripts ,
      if you cant install wsl you can run the scripts with cygwin but i couldnt get the makefile to work with cygwin
      so if you use cygwin you have to do scene detection manually using the 3 scripts shown in the video
      have a look at the "Windows run shell scripts with wsl" and "Windows scene detection with cygwin" videos,
      that should get you started i also left a link to the whole ffmpeg playlist
      once you have ffmpeg and the scripts installed they are very easy to use,
      all the scripts can be run with the -h option to print out the help
      if you have a look at the ffmpeg scripts read me page it should make sense,
      so dont feel like you need to watch all the videos you can just referrer to them if needed
      im using alacritty on linux Fedora 38 but the scripts will work fine with the windows terminal
      github.com/alacritty/alacritty
      Videos
      Windows run shell scripts with wsl
      ua-cam.com/video/N8t9W3u6cxc/v-deo.html
      Windows scene detection with cygwin
      ua-cam.com/video/hu8ZnzIsEmQ/v-deo.html
      ffmpeg scripts playlist
      ua-cam.com/play/PL7hhhG5qUoXlVUkHAhgw_px_x0zB29okR.html
      Text
      ffmpeg scripts read me
      github.com/NapoleonWils0n/ffmpeg-scripts
      all my tech notes
      github.com/NapoleonWils0n/cerberus
      ffmpeg tips
      github.com/NapoleonWils0n/ffmpeg-scripts/blob/master/ffmpeg-tips.org
      more ffmpeg tips
      github.com/NapoleonWils0n/cerberus/tree/master/ffmpeg
      let me know if you need any help getting everything set up

  • @JD-kp4dp
    @JD-kp4dp 7 місяців тому

    Hello, great great video but a lot of it goes over my head. I want to be able to split videos up via time stamps (which I get from a csv file) and rename them based on info in the csv file. Is that possible with ffmpeg? My project is analysing football games, there is an app that allows me to record the timestamps for the video, i can export to a csv file. Then I think ffmpeg can cut up the video for me?
    Any help would be greatly appreciated

    • @NapoleonWils0n
      @NapoleonWils0n  7 місяців тому

      Hi Mate, you can do exactly what you want with ffmpeg
      have a csv file with timestamps and use ffmpeg to split the video into clips
      this is exactly what i designed the scripts for to chop up things like football matches
      heres how the scene detection works
      it analyse either the whole video or a portion of a video eg from 5 minutes to 10 minutes
      and create clips for every scene change eg every time the camera cuts
      you dont need to use another app, the reason is ffmpeg needs the timestamps in a certain format
      ffmpeg can can analyse all the action in the match and create the clips
      you can automate the whole process with a makefile so you only have to run one command
      and the video will be automatically split into clips
      its also easy to create a clip that contains several scene changes or camera cuts
      eg someone crossing the ball and then another camera shot of someone heading the ball in
      heres how the filename are created with my scripts
      for example if the video is called "newcastle-vs-liverpool.mp4"
      the clips will have the same filename
      but with start and end time of the clip appened
      the filename for a clip from 5 minutes to 6 minutes would look like this
      newcastle-vs-liverpool-[00:05:00-00:06:00].mp4
      so that means you can see exactly what part of the match the clip is from
      timestamp format
      ffmpeg needs the timestamps to be in a particular format
      start time, duration
      so to create a clip with a start time 5 minutes for 5 minutes
      5 minutes to 10 minutes the format is the start time and the duration
      00:05:00,00:05:00
      and not
      00:05:00,00:10:00
      that would create a clip with a start time of 5 minutes and a duration of 10 minutes
      also my scripts dont use a header in the csv file
      they should only contain the timestamps
      if the the csv file from the app you use creates timestamps with
      start time, duration
      then you can use the scene-cut script with that file to create the clips
      if the csv file from the app has timestamps with
      start time, end time
      then i have a script that will convert the timestamps into the format ffmpeg expects
      but you need to put each timestamp on a seperate links
      so you need to change the csv file from
      00:00:00,00:00:11.875
      00:00:15.75,00:00:23.042
      to a new file with each timestamp on a seperate line
      00:00:00
      00:00:11.875
      00:00:15.75
      00:00:23.042
      then you can use the clip-time script and it will create a new csv file
      with the timestamps in the format ffmpeg expects
      then you can use the scene-cut script to chop the video up with the csv file
      sexagesimal-time is a script to convert timestamps from
      start time, end time to start time, duration
      trim-clip
      trim-clip can be used to create a single clip from video using timestamps

    • @JD-kp4dp
      @JD-kp4dp 7 місяців тому

      @@NapoleonWils0n I've never seen such a detailed answer to a youtube comment - thank you for your time. My plan is to have one camera and either it will stay in one position for the entire video or I will have it ZOOM in when triggered. So for example, I could do a skills assessment - say 10 x skills and then chop the video up. My app will trigger the start and finish of each skill. I was playing around with the app and the timestamps aren't great (in the same cell it has the start time and duration I think) but I think they can be sorted out via some formulas to get the required format for ffmpeg.
      I suppose my question is - do you do freelance/project work?

    • @NapoleonWils0n
      @NapoleonWils0n  7 місяців тому +1

      ffmpeg may detect zooming as a scene change
      then you could easily create clips for evey zoom change
      start time, duration is what you want for ffmpeg
      you can also just create a csv file with the timestamps manually
      yes i freelance if you get stuck
      if you play around with the scripts you should get the hand of it

    • @JD-kp4dp
      @JD-kp4dp 7 місяців тому

      ​@@NapoleonWils0n can ffmpeg pick up on writing/overlays on the screen?
      I'm all for more automation. All the companies tell me its not possible to do what I want live/automated.
      The app will give timestamps. Its just I don't fully understand how to optimise it.
      My ultimate goal is to have a database linking back to the videos which can be filtered by skills/test and some other data based on the person in the video

    • @NapoleonWils0n
      @NapoleonWils0n  7 місяців тому

      ffmpeg might pick up overlays text as a scene, couldnt say for sure
      you can use emacs and org mode to create a text file with timestamps for video
      and open the video to that point with mpv
      emacs and mpv
      ua-cam.com/video/xBp5uLw-ns8/v-deo.html