Lately I have experimented with PAL DV to DVD rendering, both using
ffmpeg/DeVeDE, and now using CinGG mpeg2enc/FFMPEG
I hope someone can help to clarify the following questions and debug
possible issues regarding DVD Rendering with CinGG:
1. dvd.m2v and dvd.mpg
Why are there two video files created, dvd.m2v w/o Audio and dvd.mpg
w/Audio, and which one is used for what?
I think m2v and ac3 (elementary streams) got muxed by mplex into mpg ...
tree -sh dvd_20230528-115747
dvd_20230528-115747
├── [ 16M] dvd.ac3
├── [3.4K] dvd.jobs
├── [562M] dvd.m2v
├── [588M] dvd.mpg
├── [ 733] dvd.sh
├── [6.5K] dvd.xml
└── [4.0K] iso
├── [4.0K] AUDIO_TS
└── [4.0K] VIDEO_TS
├── [6.0K] VIDEO_TS.BUP
├── [6.0K] VIDEO_TS.IFO
├── [ 18K] VTS_01_0.BUP
├── [ 18K] VTS_01_0.IFO
└── [588M] VTS_01_1.VOB
2. Deinterlacing:
The input PAL DV source file is Interlaced, Bottom Field First
ffprobe:
Stream #0:0: Video: dvvideo, none, 25000
kb/s, SAR 16:15 DAR 0:0, 25 fps, 25 tbr, 25 tbn
Stream #0:1: Audio: pcm_s16le, 48000 Hz,
stereo, s16, 1536 kb/s
Unsupported codec with id 24 for input
stream 0
mediainfo:
Width : 720 pixels
Height : 576 pixels
Color space : YUV
Scan type : Interlaced
Scan order : Bottom Field First
Why does deinterlacing with dvd default rendering (mpeg2enc) still
come out as Interlaced, but Top Field first?
May be bug in mpeg2 output? Does it look interlaced, or it just flag set wrongly?
ffprobe -hide_banner dvd.m2v
Input #0, mpegvideo, from 'dvd.m2v':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: mpeg2video (Main), yuv420p(tv, bt470bg,
top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 1200k
tbn
Side data:
cpb: bitrate max/min/avg: 8000000/0/0 buffer size: 1835008
vbv_delay: N/A
ffprobe -hide_banner dvd.mpg
[mpeg @ 0x55a756c7af00] start time for stream 0 is not set in
estimate_timings_from_pts
Input #0, mpeg, from 'dvd.mpg':
Duration: 00:09:56.44, start: 0.160000, bitrate: 8305 kb/s
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv,
bt470bg, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25
tbr, 90k tbn
Side data:
cpb: bitrate max/min/avg: 8000000/0/0 buffer size: 1835008
vbv_delay: N/A
Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 224
kb/s
Unsupported codec with id 98312 for input stream 0
mediainfo dvd.m2v | egrep "Color|pixels|Scan"
Width : 720 pixels
Height : 576 pixels
Color space : YUV
Scan type : Interlaced
Scan order : Top Field First
Color primaries : BT.601 PAL
mediainfo dvd.mpg | egrep "Color|pixels|Scan"
Width : 720 pixels
Height : 576 pixels
Color space : YUV
Scan type : Interlaced
Scan order : Top Field First
Color primaries : BT.601 PAL
While corresponding deinterlacing with the optional FFMPEG DVD
Rendering comes out as Progressive?
ffprobe -hide_banner dvd.m2v
Input #0, mpegvideo, from 'dvd.m2v':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: mpeg2video (Main), yuv420p(tv,
bt470bg/unknown/unknown, progressive), 720x576 [SAR 64:45 DAR
16:9], 25 fps, 25 tbr, 1200k tbn
Side data:
cpb: bitrate max/min/avg: 9000000/0/0 buffer size: 1835008
vbv_delay: N/A
ffprobe -hide_banner dvd.mpg
[mpeg @ 0x561effba3f00] start time for stream 0 is not set in
estimate_timings_from_pts
Input #0, mpeg, from 'dvd.mpg':
Duration: 00:09:56.42, start: 0.160000, bitrate: 8266 kb/s
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv,
bt470bg/unknown/unknown, progressive), 720x576 [SAR 64:45 DAR
16:9], 25 fps, 25 tbr, 90k tbn
Side data:
cpb: bitrate max/min/avg: 9000000/0/0 buffer size: 1835008
vbv_delay: N/A
Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 224
kb/s
mediainfo dvd.m2v | egrep
"Color|pixels|Scan"
Width : 720 pixels
Height : 576 pixels
Color space : YUV
Scan type : Progressive
mediainfo dvd.mpg | egrep "Color|pixels|Scan"
Width : 720 pixels
Height : 576 pixels
Color space : YUV
Scan type : Progressive
3. Dvd Interlaced Chroma
With reference to the CinGG manual
https://cinelerra-gg.org/download/CinelerraGG_Manual/Dvd_Interlaced_Chroma.html
Now you can use the YUV420P DVD Interlace Mode when
rendering DV directly to mpeg2 through a yuv4mpeg stream and
when using video effects on HDV video.
With this option enabled, improved chroma results will be
obtained from your DV or HDV source. Editing DV or HDV and
rendering it back to the same format does not require any
special handling. In order to perform colorspace conversions
correctly in CINELERRA-GG and avoid Chroma errors for interlaced
4:2:0 video, check the box as follows:
Settings → Performance → YUV420P DVD Interlace Mode
I can't find this option and is it relevant for DVD rendering?
Its in Interface section ..
I can attach screenshot separately.
4. Missing FFMPEG output
According to the manual:
https://cinelerra-gg.org/download/CinelerraGG_Manual/DVD_Bluray_Creation.html
It is also highly recommended to run the CINELERRA-GG startup
from a terminal window, instead of the icon, in order to see
informative messages of how to actually write the output (at
prompt: keyin <install_directory_path/bin/cin).
For the default mpeg2enc DVD rendering there is output like
mpeg2enc -v 0 -b 8000 -q 1 -a 3 -F 3 -H -I 1 -M 8 -z t
-f 8 -g 15 -G 15 -R 0 -o
'/home/terje/Videoklipp/DVD/dvd_mpeg2enc_20230527-184531/dvd.m2v'
For the optional FFMEG DVD Rendering it would be nice to also get
the actual "ffmpeg code line" as terminal output, both for learning,
customizing and debugging.
Is that possible ?
Ffmpeg dvd uses libavcodec directly, if I remember correctly. You still can edit dvd profile, at least if you installed cingg as usual (appimage probably can be extracted and modified too). look for dvd
===
cat bin/ffmpeg/video/dvd.dvd
dvd mpeg2video
s 720x480
r 30000/1001
pixel_format yuv420p
g 18
maxrate 9000000
minrate 0
bufsize 1835008
packetsize 2048
cin_bitrate=8000000
for user-installed cin