I haven't had a chance to analyze it yet but I already fixed the comment. It reads:
> segment mpeg2video > segment_format=mpegts > # Change the segment time in the next line as needed > segment_time=00:10 > reset_timestamps=1 > cin_pix_fmt=yuv422p > b=35M > dc=10 > muxrate=38M > minrate=35M > maxrate=35M > bufsize=38M > bf=2 > profile=high > refs=1 > On Tue, Jun 10, 2025 at 9:48 AM Andrew Randrianasulu < randrianas...@gmail.com> wrote: > > > вт, 10 июн. 2025 г., 18:43 Phyllis Smith <phylsmith2...@gmail.com>: > >> Although the patch >> 0001-Fixup-seg-name-to-segment-so-format-gui-button-work.patch works at >> our current version of ffmpeg 7.0 as does the audio render format >> "bluray_lpcm.seg" with the first line of "segment_format=mpegts", the >> corresponding video render format "mpeg2hd422p.seg" does not -- at least it >> fails for me. Its error message is: >> >> FFMPEG::encode_activate: write header failed /tmp/ccc.seg >>> err: Muxer not found >>> >> >> I will see what I may have done wrong. >> > > if it literally reads > > > segment mpeg2video > segment_format=mpegts > segment_time=00:10 <= your segment time > reset_timestamps=1 > cin_pix_fmt=yuv422p > > then "your segment time" was comment not meant to put in there in this > form, just reminder for human reader .... may be it choke on this? > > > >> >> >> On Mon, Jun 9, 2025 at 10:39 AM Andrew Randrianasulu < >> randrianas...@gmail.com> wrote: >> >>> >>> >>> пн, 9 июн. 2025 г., 19:32 Phyllis Smith <phylsmith2...@gmail.com>: >>> >>>> Andrew, I have been contemplating this since you brought it up again >>>> with Terje. Should it be checked into GIT after Terje checks it? >>>> >>> >>> if it works .... >>> >>> May be with # comment line saying for different seg duration change >>> value here and in corresponding audio file. >>> >>> >>> >>>> On Sun, Jun 1, 2025 at 1:06 AM Andrew Randrianasulu via Cin < >>>> cin@lists.cinelerra-gg.org> wrote: >>>> >>>>> with this patch (git am variety) I can set segment_time in gui, but >>>>> for short test video actual cut time was >>>>> dominated by same set of six keyframes, in my case. >>>>> >>>>> On Sun, Jun 1, 2025 at 4:56 AM Andrew Randrianasulu >>>>> <randrianas...@gmail.com> wrote: >>>>> > >>>>> > >>>>> > >>>>> > вс, 1 июн. 2025 г., 00:03 Terje J. Hanssen <terjejhans...@gmail.com >>>>> >: >>>>> >> >>>>> >> >>>>> >> >>>>> >> On 31.05.2025 05:33, Andrew Randrianasulu wrote: >>>>> >> >>>>> >> On Fri, May 30, 2025 at 4:27 PM Andrew Randrianasulu >>>>> >> <randrianas...@gmail.com> wrote: >>>>> >> >>>>> >> пт, 30 мая 2025 г., 15:55 Terje J. Hanssen <terjejhans...@gmail.com >>>>> >: >>>>> >> >>>>> >> Den 30.05.2025 00:15, skrev Andrew Randrianasulu: >>>>> >> >>>>> >> >>>>> >> >>>>> >> пт, 30 мая 2025 г., 00:30 Andrew Randrianasulu < >>>>> randrianas...@gmail.com>: >>>>> >> >>>>> >> чт, 29 мая 2025 г., 23:42 Terje J. Hanssen via Cin < >>>>> cin@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, >>>>> >> >>>>> >> just put file where other video profiles live? (ffmpeg/video folder >>>>> of your cingg installation) >>>>> >> >>>>> >> Attaching test profile trying to utilize segmented muxer for mpeg >>>>> >> system streams >>>>> >> >>>>> >> Put them according to their content into >>>>> >> >>>>> >> /usr/share/cin/ffmpeg/video and /usr/share/cin/ffmpeg/audio for >>>>> >> standard rpm/deb cinelerra install >>>>> >> >>>>> >> make sure they readable by your user (chown -R your_username:users >>>>> >> /usr/share/cin/ffmpeg might fix weird issues like "bad file format") >>>>> >> >>>>> >> >>>>> >> I upgraded to the latest rpm for Leap15.6 >>>>> >> >>>>> >> terje@localhost:/usr/share/cin/ffmpeg> ls -lt audio/*.seg >>>>> audio/seg.* video/*.seg video/seg.* >>>>> >> -rw-r--r-- 1 terje users 159 mai 31 17:49 video/mpeg2.seg >>>>> >> -rw-r--r-- 1 terje users 14 mai 31 17:49 video/seg.dfl >>>>> >> -rw-r--r-- 1 terje users 77 mai 31 17:47 audio/mpeg2_mp2.seg >>>>> >> -rw-r--r-- 1 terje users 14 mai 31 17:47 audio/seg.dfl >>>>> >> >>>>> >> In cingg shift-R, select seg from dropdown menu, select both audio >>>>> and >>>>> >> video encoding (there will be grand total of one choice in each >>>>> >> category), >>>>> >> then put filename like /dev/shm/file%02d.mpeg and try to render >>>>> >> >>>>> >> It will give you files: >>>>> >> >>>>> >> >>>>> >> Loaded a hdv 1080i50 file >>>>> >> Very short segments, maybe just 10 sec each >>>>> >> >>>>> >> root@slax:~# ls -la /dev/shm/seg* >>>>> >> -rw-r--r-- 1 guest users 0 мая 31 06:19 /dev/shm/seg%02d.mpeg >>>>> >> -rw-r--r-- 1 guest users 0 мая 31 05:57 /dev/shm/seg%02d.seg >>>>> >> -rw-r--r-- 1 guest users 2375680 мая 31 06:19 /dev/shm/seg00.mpeg >>>>> >> -rw-r--r-- 1 guest users 1980416 мая 31 06:19 /dev/shm/seg01.mpeg >>>>> >> -rw-r--r-- 1 guest users 1947648 мая 31 06:19 /dev/shm/seg02.mpeg >>>>> >> -rw-r--r-- 1 guest users 2009088 мая 31 06:19 /dev/shm/seg03.mpeg >>>>> >> -rw-r--r-- 1 guest users 2170880 мая 31 06:19 /dev/shm/seg04.mpeg >>>>> >> -rw-r--r-- 1 guest users 2205696 мая 31 06:19 /dev/shm/seg05.mpeg >>>>> >> -rw-r--r-- 1 guest users 2535424 мая 31 06:19 /dev/shm/seg06.mpeg >>>>> >> -rw-r--r-- 1 guest users 1966080 мая 31 06:19 /dev/shm/seg07.mpeg >>>>> >> -rw-r--r-- 1 guest users 1945600 мая 31 06:19 /dev/shm/seg08.mpeg >>>>> >> -rw-r--r-- 1 guest users 2023424 мая 31 06:19 /dev/shm/seg09.mpeg >>>>> >> -rw-r--r-- 1 guest users 2101248 мая 31 06:19 /dev/shm/seg10.mpeg >>>>> >> -rw-r--r-- 1 guest users 1026048 мая 31 06:19 /dev/shm/seg11.mpeg >>>>> >> >>>>> >> Now you can play all fo them gapless with mpv: >>>>> >> >>>>> >> >>>>> >> mpv worked best for audio, though blocking pixels in the video >>>>> >> vlc got dropouts in audio also within a segment >>>>> >> >>>>> >> Tried similar with Shift-P: 1920x1080, 50fps, yuv422 and mpeg2_hq >>>>> profile changed to 50Mbps bitrate, then r (record from v4l2 /dev/video0 >>>>> (ms2130) >>>>> >> Got short segments, yuv422 at low bitrate >>>>> > >>>>> > >>>>> > >>>>> > You need to set bitrate explicitly for this profile, I think? >>>>> > >>>>> > in GUI or just add b=16M or what you like. >>>>> > >>>>> > Right now for longer segments you need to modify both profiles >>>>> manually and set segment_time to value you want in both audio and video >>>>> *.seg profiles >>>>> > >>>>> > If it works I think I know where in cingg code I should put override >>>>> so our gui for format (muxer) options will work (right now it stumbles on >>>>> difference between seg and segment ) >>>>> > >>>>> >> >>>>> >> root@slax:~# mpv /dev/shm/se*.mpeg >>>>> >> Playing: /dev/shm/seg%02d.mpeg >>>>> >> Failed to recognize file format. >>>>> >> Playing: /dev/shm/seg00.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AO: [pulse] 48000Hz stereo 2ch s16 >>>>> >> VO: [gpu] 720x576 => 768x576 yuv420p >>>>> >> AV: 00:00:02 / 00:00:02 (97%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg01.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg02.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg03.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg04.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg05.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg06.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:02 / 00:00:02 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg07.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg08.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg09.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg10.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:01 / 00:00:01 (98%) A-V: 0.000 >>>>> >> Playing: /dev/shm/seg11.mpeg >>>>> >> (+) Video --vid=1 (mpeg2video 720x576 25.000fps) >>>>> >> (+) Audio --aid=1 (mp2 2ch 48000Hz) >>>>> >> AV: 00:00:00 / 00:00:01 (91%) A-V: 0.000 >>>>> >> Exiting... (Some errors happened) >>>>> >> >>>>> >> >>>>> >> I've verified that at least audio track exist, but you better to run >>>>> >> your own liestening test to hear if audio get desynchronized over >>>>> >> longer runs >>>>> >> >>>>> >> What worries me is audio. If segmented audio muxer cut it >>>>> differently from video we will get desync. >>>>> >> >>>>> >> May be setting labels at specific intervals and then using "write >>>>> new file at label" checkbox is better idea? >>>>> >> >>>>> >> >>>>> >> 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 >>>>> >> >>>>> >> Up to interested party, I guess. >>>>> >> >>>>> >> >>>>> >> 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 >>>>> >> >>>>> >> Yes, I was thinking about this, but unfortunately without any >>>>> testable idea. Sorry. >>>>> >> >>>>> >> >>>>> -- >>>>> Cin mailing list >>>>> Cin@lists.cinelerra-gg.org >>>>> https://lists.cinelerra-gg.org/mailman/listinfo/cin >>>>> >>>>
-- Cin mailing list Cin@lists.cinelerra-gg.org https://lists.cinelerra-gg.org/mailman/listinfo/cin