I have a video-only stream that I removed the audio from without re-encoding. The video information is as follows.

hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x1608

Frame information is as such: 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default).

I understand that this is already in a compressed format, so my goal is to prevent any further generational loss/not re-encoding in this process. I am trying to cut the video stream into clips, between actual video frames, to get frame-accurate clips.

I am only used to working with video sequences as lossless frames stored inside of directories, I am not used to working with actual streams or containers or anything of the sort. This concept of multiple types of frames and all the inter-frame-trickery that the containers/compression applies is 100% lost on me and I absolutely do not understand it at all.

I don't understand how I can use s to go forward one frame in ffplay, but I can't specify or work in frames directly to FFMPEG? How does it know what "forward one frame" is if the output of ffplay can't even give me discrete frames to reference for trimming? That's literally all I'm trying to do.

What I read so far about this just says stuff along the lines of "divide the framerate by the time, then trim with that converted non-integer" -- in which every single thread that advocated for this ultimately turned back to the nature of my question, or is answered with "what do you mean by frame?" -- I don't know, what does FFMPEG mean by NUMBER_OF_FRAMES-eng: 19295? -- That's the grid I want to work with.. the fully-quantized one made up of tangible frames.. and do so without re-encoding or incurring generational losses.

Any clarifying information is greatly appreciated.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.