[Cin] DV50 - the forgotten optimal codec for digitizing analog Hi8/S-video ?

Terje J. Hanssen terjejhanssen at gmail.com
Tue Jun 10 12:13:05 CEST 2025


In case this also may be something for a CinGG "dv50.mov" preset:

Long time ago, Renomath "Video with Linux, Workflow Resources" by Eric 
Olson, catched my interest (then unobtainable) DV50 when I read

Hi8 Tape to DVD Video Workflow with Linux 
<https://renomath.org/video/linux/hi8/>
/If you have a faster system you may want to consider capturing using 
the DV50 codec using a 4:2:2 color space. In order to do this, libng 
from the xawtv project needs to be patched to recognize the dv50 codec. 
Using dv50 as the capture codec really allows the Linux solution to 
surpass a stand-along DVD recorder.
It is also possible to capture the video using ffmpeg or lavrec.
/
Cinelerra Version 4.x yuv4mpeg Patch 
<https://renomath.org/video/linux/cinelerra/>
/Patch for dnxhd and dv50 Quicktime Input, which add dnxhd and dv50 
input to Cinelerra. The advantage of dnxhd and dv50 over mjpeg is native 
support of 1080i, 4:2:2 chroma and greater encoding quality due to more 
flexible quantization and compression methods.
-------

/While ffv1.mkv often is suggested as preservation master file for 
migrating analog VHS materials, a mezzanin file has also been suggested 
using
File Wrapper: QuickTime (.mov), Video Stream: DV50, Audio Stream: 
48Khz/16-bit PCM
https://memoriav.ch/wp-content/uploads/2014/07/VARRFP.pdf

----

FFmpeg documentation has little documentation about dv50, which 
seemingly is less used:
https://ffmpeg.org/ffmpeg.html#Main-options
https://ffmpeg.org/pipermail/ffmpeg-user/2023-June/056548.html

     -target type (output)

Specify target file type (vcd, svcd, dvd, dv, *dv50*). type may be 
prefixed with *pal-*, ntsc- or film- to use the corresponding standard. 
All the format options (bitrate, codecs, buffer sizes) are then set 
automatically.
The dv50 target is identical to the dv target except that the pixel 
format set is *yuv422p* for all three standards.
----------

I have tried to experiment with dv50 encoding via my ms2130 capture and 
v4l2 driver. First with just "c:v dvvideo -target dv50" which resulted 
in "25fps" and 50Mbps, but this caused jumping video images. I expect 
that issue was due to a unsupported frame rate.

Some AI search later told me that DVCPRO50 (aka DV50) possibly optional 
could shoot in 50fps, so I tried to add "-r 50" in the output, which 
resulted in twice as big output file with 50fps as follows, but steady 
video images.

ffmpeg -hide_banner -f v4l2 -i /dev/video0 -f alsa -ch_layout stereo -i 
hw:CARD=UHD,DEV=0 -codec:v dvvideo -b:v 50M -minrate 50M -maxrate 50M 
-target pal-dv50 -r 50 -c:a copy -t 10 -f mov DV50p+pcm.mov

Input #0, video4linux2,v4l2, from '/dev/video0':
   Duration: N/A, start: 174.116728, bitrate: 1990656 kb/s
   Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1920x1080, 
1990656 kb/s, 60 fps, 60 tbr, 1000k tbn
Input #1, alsa, from 'hw:CARD=UHD,DEV=0':
   Duration: N/A, start: 1749543254.028464, bitrate: 1536 kb/s
   Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
[vost#0:0/dvvideo @ 0x55ecffd02f80] Multiple -r options specified for 
stream 0, only the last option '-r 50' will be used.
Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> dvvideo (native))
   Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[dvvideo @ 0x7f5c30706300] Only top-left chroma location is supported in 
DV, input value is: unspecified
......
[dvvideo @ 0x55ecffce9440] Only top-left chroma location is supported in 
DV, input value is: unspecified

Output #0, mov, to 'DV50p+pcm.mov':
   Metadata:
     encoder         : Lavf61.7.100
   Stream #0:0: Video: dvvideo (dvcp / 0x70637664), yuv422p(tv, 
progressive), 720x576, q=2-31, 50000 kb/s, 50 fps, 12800 tbn
       Metadata:
         encoder         : Lavc61.19.101 dvvideo
   Stream #0:1: Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, 
s16, 1536 kb/s
[out#0/mov @ 0x55ecffd02700] video:140625KiB audio:1875KiB subtitle:0KiB 
other streams:0KiB global headers:0KiB muxing overhead: 0.026991%

frame=  500 fps= 50 q=-0.0 Lsize=  142539KiB time=00:00:10.00 
bitrate=116767.7kbits/s dup=0 drop=98 speed=0.998x

------------

du -sh DV*
69M    DV50i.mov
138M    DV50p.mov
140M    DV50p+pcm.mov
---------

ffprobe -hide_banner DV50p+pcm.mov

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'DV50p+pcm.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf61.7.100
   Duration: 00:00:10.00, start: 0.000000, bitrate: 116767 kb/s
   Stream #0:0[0x1]: Video: dvvideo (dv5p / 0x70357664), 
yuv422p(progressive), 720x576 [SAR 16:15 DAR 4:3], 57600 kb/s, 50 fps, 
50 tbr, 12800 tbn (default)
       Metadata:
         handler_name    : VideoHandler
         vendor_id       : FFMP
         encoder         : Lavc61.19.101 dvvideo
   Stream #0:1[0x2]: Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, 
stereo, s16, 1536 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
         vendor_id       : [0][0][0][0]










-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250610/2a4ddaa3/attachment.htm>


More information about the Cin mailing list