[Cin] Segmented Recording from input stream
Terje J. Hanssen
terjejhanssen at gmail.com
Fri May 30 14:55:50 CEST 2025
Den 30.05.2025 00:15, skrev Andrew Randrianasulu:
>
>
> пт, 30 мая 2025 г., 00:30 Andrew Randrianasulu <randrianasulu at gmail.com>:
>
>
>
> чт, 29 мая 2025 г., 23:42 Terje J. Hanssen via Cin
> <cin at lists.cinelerra-gg.org>:
>
> Is it possible with CinGG's Record utility (via FFMPEG) to
> record a stream to file segments of same duration or file size
> and use auto-naming?
>
> Typical example:
> Record a video/audio input stream (i.e from playing a
> camcorder tape cassette) and encode to output file segments of
> 10 minutes or 10 GB each and auto-name file numbers.
>
> Similar example code using an input file instead at
> https://unix.stackexchange.com/questions/1670/how-can-i-use-ffmpeg-to-split-mpeg-video-into-10-minute-chunks
>
> Just use what is built into ffmpeg to do exactly this.
>
> |ffmpeg -i invid.mp4 -threads 3 \ -vcodec copy *-f segment
> -segment_time 10:00 \ -reset_timestamps 1 \
> cam_out_h264_%02d.mp4* |
>
> This will split it into roughly 10-minute chunks, split at the
> relevant keyframes, and will output to the files
> *|cam_out_h264_01.mp4|, |cam_out_h264_02.mp4|*, etc.
>
> Very interesting question! Never tried this, did not even know it
> existed!
>
> As long as this -f just ordinary avformat muxer you probably can
> copy your favourite ffmpeg video/audio profiles with new .seg name
> and put "segmented" at very first line there , where "mov" or
> "matroska" or other format name was, and add rest of options. And
> add pattern (%02d) into name just as with ffmpeg-based image lists.
>
> I'll try this with termux's version, but I do not have audio here
> so it will be incomplete.
>
>
> so I created this file:
>
> cat ffmpeg/video/mpeg2.seg
> segment mpeg2video
> segment_format=mpeg
> segment_time=00:10
> reset_timestamps=1
> trellis=2
> mbd=rd
> cmp=2
> subcmp=2
> b=4000000
>
>
> and it worked! in sense it created six segments, each with
> corresponding increasing timecode. But they all uneven duration,
> probably due to mpeg2 codec placing keyframes at will.
>
> You can try to modify it back to 10:00 segment time and see how it
> work for longer encode?
>
As I'm not sure if and how you applied your file above with regards to
Cingg Record,
I simply did a test with my system's ffmpeg segment muxer:
https://ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment
Input file: hdv09_04_h264.mp4
Duration: 00:03:58.88, start: 0.000000, bitrate: 8963 kb/s
Tried 1 minute segment time:
ffmpeg -hide_banner -i hdv09_04_h264.mp4 -threads 3 \
-vcodec copy -f segment -segment_time 01:00 \
-reset_timestamps 1 \
cam_out_h264_%02d.mp4
[segment @ 0x563c2874fa80] Opening 'cam_out_h264_01.mp4' for
writingeed=52.1x
[segment @ 0x563c2874fa80] Opening 'cam_out_h264_02.mp4' for
writingeed=55.5x
[segment @ 0x563c2874fa80] Opening 'cam_out_h264_03.mp4' for
writingeed= 57x
[out#0/segment @ 0x563c28727680] video:257421KiB audio:3749KiB
subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead:
unknown
frame= 5972 fps=1445 q=-1.0 Lsize=N/A time=00:03:58.80 bitrate=N/A
speed=57.8x
[aac @ 0x563c28721a40] Qavg: 454.522
68M cam_out_h264_00.mp4
63M cam_out_h264_01.mp4
59M cam_out_h264_02.mp4
68M cam_out_h264_03.mp4
--------
Duration: 00:01:00.38, start: 0.058000, bitrate: 9394 kb/s
Duration: 00:01:00.00, start: 0.000000, bitrate: 8672 kb/s
Duration: 00:01:00.60, start: 0.000000, bitrate: 8104 kb/s
Duration: 00:00:57.93, start: 0.000000, bitrate: 9705 kb/s
In total: 00:03:58.93 which is 00:00:00.03 (=3/100 sek) more than
the input file
which I think is good enough for practical purposes (editing and
backup/preservation/archival)
I wonder if it is within or out of our reach to make some targeted
profiles for backup/preservation?
I.e would it be of interest and possible to utilize/integrate/use oss
tools and scripts as found here:
https://avpres.net/Bash_AVpres/
https://avpres.net/FFmpeg/im_FFV1.html
The programs dvgrab and possibly the newer vrecord can also autosplit by
scenes
https://linux.die.net/man/1/dvgrab
https://github.com/amiaopensource/vrecord
https://github.com/mipops/dvrescue
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250530/5f435533/attachment.htm>
More information about the Cin
mailing list