[Cin] Segmented Recording from input stream
Terje J. Hanssen
terjejhanssen at gmail.com
Mon Jun 23 13:56:33 CEST 2025
Den 13.06.2025 21:38, skrev Andrew Randrianasulu:
>
>
> пт, 13 июн. 2025 г., 22:23 Phyllis Smith <phylsmith2017 at gmail.com>:
>
> With the patch (and even using extension of mpeg instead of seg),
> I simply have not been able to get this to work. So either I keep
> doing something wrong or it does. Patch to fileffmpeg.C is:
> 0001-Fixup-seg-name-to-segment-so-format-gui-button-work.patch .
> And the 2 presets are bluray_lpcm.seg and mpeg2hd422p.seg
>
>
> Try extension mpg, not mpeg and be sure you have
>
> %d0 symbols in your filename?
>
> Note, this file will be created as 0-sized, you need to watch/load
> segment files manually.
......................... snip
> >>
> >> пт, 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.
> >>
>
............snip
I went to the start and successful adapted the ffmpeg codeline for
capturing mpeg2sd422p via v4l2 to segments 'a 30 sec, total time 120 sec:
ffmpeg -hide_banner -f v4l2 -video_size 720x576 -framerate 50 -i
/dev/video0 -f alsa -ch_layout stereo -i hw:CARD=UHD,DEV=0 -c:v
mpeg2video -vf scale=720x576 -profile:v 422p -level:v main -refs 1 -bf 2
-b:v 30M -maxrate 30M -minrate 30M -bufsize 25M -muxrate 35M -c:a
pcm_s16le -t 120 -f segment -segment_time 00:30 -reset_timestamps 1
mpeg2sd422p_30M_%02d.mkv
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 139.588942, bitrate: 331776 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576,
331776 kb/s, 50 fps, 50 tbr, 1000k tbn
Input #1, alsa, from 'hw:CARD=UHD,DEV=0':
Duration: N/A, start: 1750676281.517256, bitrate: 1536 kb/s
Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native))
Stream #1:0 -> #0:1 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[mpeg2video @ 0x55d2ea6dd6c0] Warning vbv_delay will be set to 0xFFFF
(=VBR) as the specified vbv buffer is too large for the given bitrate!
[segment @ 0x55d2ea6f1840] Opening 'mpeg2sd422p_30M_00.mkv' for writing
Output #0, segment, to 'mpeg2sd422p_30M_%02d.mkv':
Metadata:
encoder : Lavf61.7.100
Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, progressive),
720x576, q=2-31, 30000 kb/s, 50 fps, 1k tbn
Metadata:
encoder : Lavc61.19.101 mpeg2video
Side data:
cpb: bitrate max/min/avg: 30000000/30000000/30000000 buffer
size: 25000000 vbv_delay: N/A
Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Metadata:
encoder : Lavc61.19.101 pcm_s16le
[segment @ 0x55d2ea6f1840] Opening 'mpeg2sd422p_30M_01.mkv' for
writing.999x
[segment @ 0x55d2ea6f1840] Opening 'mpeg2sd422p_30M_02.mkv' for writing 1x
[segment @ 0x55d2ea6f1840] Opening 'mpeg2sd422p_30M_03.mkv' for writing 1x
[out#0/segment @ 0x55d2ea6f6b00] video:438690KiB audio:22499KiB
subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead:
unknown
frame= 6000 fps= 50 q=2.5 Lsize=N/A time=00:01:59.98 bitrate=N/A dup=0
drop=1 speed= 1x
----------
du -sh mpeg2sd422p_30M_*
113M mpeg2sd422p_30M_00.mkv
113M mpeg2sd422p_30M_01.mkv
113M mpeg2sd422p_30M_02.mkv
114M mpeg2sd422p_30M_03.mkv
-----------
ffprobe -hide_banner mpeg2sd422p_30M_02.mkv
Input #0, matroska,webm, from 'mpeg2sd422p_30M_02.mkv':
Metadata:
ENCODER : Lavf61.7.100
Duration: 00:00:30.02, start: 0.000000, bitrate: 31548 kb/s
Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, progressive),
720x576 [SAR 1:1 DAR 5:4], 50 fps, 50 tbr, 1k tbn
Metadata:
ENCODER : Lavc61.19.101 mpeg2video
DURATION : 00:00:30.020000000
Side data:
cpb: bitrate max/min/avg: 30000000/0/0 buffer size: 25001984
vbv_delay: N/A
Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Metadata:
ENCODER : Lavc61.19.101 pcm_s16le
DURATION : 00:00:30.000000000
------------
ffprobe -hide_banner mpeg2sd422p_30M_03.mkv
Input #0, matroska,webm, from 'mpeg2sd422p_30M_03.mkv':
Metadata:
ENCODER : Lavf61.7.100
Duration: 00:00:30.06, start: 0.000000, bitrate: 31550 kb/s
Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, progressive),
720x576 [SAR 1:1 DAR 5:4], 50 fps, 50 tbr, 1k tbn
Metadata:
ENCODER : Lavc61.19.101 mpeg2video
DURATION : 00:00:30.059000000
Side data:
cpb: bitrate max/min/avg: 30000000/0/0 buffer size: 25001984
vbv_delay: N/A
Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Metadata:
ENCODER : Lavc61.19.101 pcm_s16le
DURATION : 00:00:30.059000000
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250623/4868f716/attachment-0001.htm>
More information about the Cin
mailing list