From 46e2311878bc7179449d2d867c294d26a765325b Mon Sep 17 00:00:00 2001 From: Morgan Oscar Morel Date: Thu, 3 Apr 2025 14:17:10 -0400 Subject: [PATCH 1/5] Added more HD formats Added support for recording the following HD formats: 23ps - 1080p23.98, 24ps - 1080p24, Hp25 - 1080p25, Hp29 - 1080p29.97, Hp30 - 1080p30, Hi50 - 1080i25, Hi60 - 1080i30, hp50 - 720p50, hp59 - 720p59.97, hp60 - 720p60. Also rearranged window slightly so format names and descriptions show up better --- vrecord | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 98 insertions(+), 8 deletions(-) diff --git a/vrecord b/vrecord index e1871925..99b5f413 100755 --- a/vrecord +++ b/vrecord @@ -982,10 +982,10 @@ DECKLINK_INPUT_GUI=$(cat << DECKLINK_FORM $(_gtk_vbox_list "VIDEO_INPUT_CHOICE" "80" "Video Input" "${VIDEO_INPUT_OPTIONS[@]}") $(_gtk_vbox_list "AUDIO_INPUT_CHOICE" "130" "Audio Input" "${AUDIO_INPUT_OPTIONS[@]}") $(_gtk_vbox_list "AUDIO_MAPPING_CHOICE" "-1" "Audio Channel Mapping" "${CHANNEL_MAPPING_OPTIONS[@]}" ) - $(_gtk_vbox_list "STANDARD_CHOICE" "50" "Standard" "${STANDARD_OPTIONS[@]}") - $(_gtk_vbox_list "VIDEO_BIT_DEPTH_CHOICE" "60" "Video Bit Depth" "${VIDEO_BITDEPTH_OPTIONS[@]}") - $(_gtk_vbox_list "ASPECT_RATIO_CHOICE" "60" "Display Aspect Ratio" "${ASPECT_RATIO_OPTIONS[@]}") - $(_gtk_vbox_list "TIMECODE_CHOICE" "6 0" "Timecode format" "${TIMECODE_OPTIONS[@]}") + $(_gtk_vbox_list "STANDARD_CHOICE" "110" "Standard" "${STANDARD_OPTIONS[@]}") + $(_gtk_vbox_list "VIDEO_BIT_DEPTH_CHOICE" "40" "Video Bit Depth" "${VIDEO_BITDEPTH_OPTIONS[@]}") + $(_gtk_vbox_list "ASPECT_RATIO_CHOICE" "40" "Display Aspect Ratio" "${ASPECT_RATIO_OPTIONS[@]}") + $(_gtk_vbox_list "TIMECODE_CHOICE" "40" "Timecode format" "${TIMECODE_OPTIONS[@]}") @@ -1892,7 +1892,46 @@ _lookup_choice(){ MIDDLEOPTIONS_ALL+=(-color_primaries bt470bg) MIDDLEOPTIONS_ALL+=(-color_trc bt709) MIDDLEOPTIONS_ALL+=(-colorspace bt470bg) ;; - "Hi59") + "23ps - 1080p23.98") + STANDARD="23ps" + DECKLINK_FPS="24000/1001" + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "24ps - 1080p24") + STANDARD="24ps" + DECKLINK_FPS="24000/1000" + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "Hp25 - 1080p25") + STANDARD="Hp25" + DECKLINK_FPS="25000/1000" + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "Hp29 - 1080p29.97") + STANDARD="Hp29" + DECKLINK_FPS="30000/1001" + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "Hp30 - 1080p30") + STANDARD="Hp30" + DECKLINK_FPS="30000/1000" + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "Hi50 - 1080i25") + STANDARD="Hi50" + DECKLINK_FPS="25000/1000" + if [[ "${VIDEO_CODEC_CHOICE}" = "h264" ]] ; then + MIDDLEOPTIONS+=(-x264opts tff) + fi + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "Hi59 - 1080i29.97") STANDARD="Hi59" DECKLINK_FPS="30000/1001" if [[ "${VIDEO_CODEC_CHOICE}" = "h264" ]] ; then @@ -1901,6 +1940,33 @@ _lookup_choice(){ MIDDLEOPTIONS+=(-color_primaries bt709) MIDDLEOPTIONS+=(-color_trc bt709) MIDDLEOPTIONS+=(-colorspace bt709) ;; + "Hi60 - 1080i30") + STANDARD="Hi60" + DECKLINK_FPS="30000/1000" + if [[ "${VIDEO_CODEC_CHOICE}" = "h264" ]] ; then + MIDDLEOPTIONS+=(-x264opts tff) + fi + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "hp50 - 720p50") + STANDARD="hp50" + DECKLINK_FPS="50000/1000" + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "hp59 - 720p59.97") + STANDARD="hp59" + DECKLINK_FPS="60000/1001" + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; + "hp60 - 720p60") + STANDARD="hp60" + DECKLINK_FPS="60000/1000" + MIDDLEOPTIONS+=(-color_primaries bt709) + MIDDLEOPTIONS+=(-color_trc bt709) + MIDDLEOPTIONS+=(-colorspace bt709) ;; # aspect ratio options "4/3") if [[ "${STANDARD}" = "ntsc" ]] ; then @@ -1909,7 +1975,19 @@ _lookup_choice(){ elif [[ "${STANDARD}" = "pal " ]] ; then RECORDINGFILTER+=",setsar=${PAL_43_SAR_CHOICE}" RECORDINGFILTER_MP4+=",setsar=${PAL_43_SAR_CHOICE}" - elif [[ "${STANDARD}" = "Hi59" ]] ; then + elif [[ "${STANDARD}" = "23ps" ]] ; then + RECORDINGFILTER+=",setdar=4/3" + RECORDINGFILTER_MP4+=",setdar=4/3" + elif [[ "${STANDARD}" = "24ps" ]] ; then + RECORDINGFILTER+=",setdar=4/3" + RECORDINGFILTER_MP4+=",setdar=4/3" + elif [[ "${STANDARD:0:2}" = "Hp" ]] ; then + RECORDINGFILTER+=",setdar=4/3" + RECORDINGFILTER_MP4+=",setdar=4/3" + elif [[ "${STANDARD:0:2}" = "Hi" ]] ; then + RECORDINGFILTER+=",setdar=4/3" + RECORDINGFILTER_MP4+=",setdar=4/3" + elif [[ "${STANDARD:0:2}" = "hp" ]] ; then RECORDINGFILTER+=",setdar=4/3" RECORDINGFILTER_MP4+=",setdar=4/3" else @@ -1922,7 +2000,19 @@ _lookup_choice(){ elif [[ "${STANDARD}" = "pal " ]] ; then RECORDINGFILTER+=",setsar=${PAL_169_SAR_CHOICE}" RECORDINGFILTER_MP4+=",setsar=${PAL_169_SAR_CHOICE}" - elif [[ "${STANDARD}" = "Hi59" ]] ; then + elif [[ "${STANDARD}" = "23ps" ]] ; then + RECORDINGFILTER+=",setdar=16/9" + RECORDINGFILTER_MP4+=",setdar=16/9" + elif [[ "${STANDARD}" = "24ps" ]] ; then + RECORDINGFILTER+=",setdar=16/9" + RECORDINGFILTER_MP4+=",setdar=16/9" + elif [[ "${STANDARD:0:2}" = "Hp" ]] ; then + RECORDINGFILTER+=",setdar=16/9" + RECORDINGFILTER_MP4+=",setdar=16/9" + elif [[ "${STANDARD:0:2}" = "Hi" ]] ; then + RECORDINGFILTER+=",setdar=16/9" + RECORDINGFILTER_MP4+=",setdar=16/9" + elif [[ "${STANDARD:0:2}" = "hp" ]] ; then RECORDINGFILTER+=",setdar=16/9" RECORDINGFILTER_MP4+=",setdar=16/9" else @@ -2410,7 +2500,7 @@ PAL_43_SAR_OPTIONS=("12/11" "16/15" "128/117") PAL_169_SAR_OPTIONS=("16/11" "64/45" "512/351") CHANNEL_MAPPING_OPTIONS=("2 Stereo Tracks (Channels 1 & 2 -> 1st Track Stereo, Channels 3 & 4 -> 2nd Track Stereo)" "1 Stereo Track (From Channels 1 & 2)" "1 Stereo Track (From Channels 3 & 4)" "Channel 1 -> 1st Track Mono, Channel 2 -> 2nd Track Mono" "Channel 2 -> 1st Track Mono, Channel 1 -> 2nd Track Mono" "Channel 1 -> Single Track Mono" "Channel 2 -> Single Track Mono") TIMECODE_OPTIONS=("none" "rp188vitc" "rp188vitc2" "rp188ltc" "rp188any" "vitc" "vitc2" "serial") -STANDARD_OPTIONS=("NTSC" "PAL" "Hi59") +STANDARD_OPTIONS=("NTSC" "PAL" "23ps - 1080p23.98" "24ps - 1080p24" "Hp25 - 1080p25" "Hp29 - 1080p29.97" "Hp30 - 1080p30" "Hi50 - 1080i25" "Hi59 - 1080i29.97" "Hi60 - 1080i30" "hp50 - 720p50" "hp59 - 720p59.97" "hp60 - 720p60") QCTOOLSXML_OPTIONS=("Yes, concurrent with recording" "Yes, after recording" "No") EMBED_LOGS_OPTIONS=("Yes" "No") PLAYBACKVIEW_OPTIONS=("Unfiltered" "Visual" "Audio + Video" "Visual + Numerical" "Color Matrix" "Bit Planes" "Frame Positioning" "Captions") From 3a7a59087c1ee9ce7b1a76dd02ad9be44e30a9cb Mon Sep 17 00:00:00 2001 From: Morgan Oscar Morel Date: Thu, 3 Apr 2025 14:23:18 -0400 Subject: [PATCH 2/5] fixed interlaced format names changed 1080i25 to 1080i50, etc --- vrecord | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vrecord b/vrecord index 99b5f413..17b34ca3 100755 --- a/vrecord +++ b/vrecord @@ -2500,7 +2500,7 @@ PAL_43_SAR_OPTIONS=("12/11" "16/15" "128/117") PAL_169_SAR_OPTIONS=("16/11" "64/45" "512/351") CHANNEL_MAPPING_OPTIONS=("2 Stereo Tracks (Channels 1 & 2 -> 1st Track Stereo, Channels 3 & 4 -> 2nd Track Stereo)" "1 Stereo Track (From Channels 1 & 2)" "1 Stereo Track (From Channels 3 & 4)" "Channel 1 -> 1st Track Mono, Channel 2 -> 2nd Track Mono" "Channel 2 -> 1st Track Mono, Channel 1 -> 2nd Track Mono" "Channel 1 -> Single Track Mono" "Channel 2 -> Single Track Mono") TIMECODE_OPTIONS=("none" "rp188vitc" "rp188vitc2" "rp188ltc" "rp188any" "vitc" "vitc2" "serial") -STANDARD_OPTIONS=("NTSC" "PAL" "23ps - 1080p23.98" "24ps - 1080p24" "Hp25 - 1080p25" "Hp29 - 1080p29.97" "Hp30 - 1080p30" "Hi50 - 1080i25" "Hi59 - 1080i29.97" "Hi60 - 1080i30" "hp50 - 720p50" "hp59 - 720p59.97" "hp60 - 720p60") +STANDARD_OPTIONS=("NTSC" "PAL" "23ps - 1080p23.98" "24ps - 1080p24" "Hp25 - 1080p25" "Hp29 - 1080p29.97" "Hp30 - 1080p30" "Hi50 - 1080i50" "Hi59 - 1080i59.94" "Hi60 - 1080i60" "hp50 - 720p50" "hp59 - 720p59.97" "hp60 - 720p60") QCTOOLSXML_OPTIONS=("Yes, concurrent with recording" "Yes, after recording" "No") EMBED_LOGS_OPTIONS=("Yes" "No") PLAYBACKVIEW_OPTIONS=("Unfiltered" "Visual" "Audio + Video" "Visual + Numerical" "Color Matrix" "Bit Planes" "Frame Positioning" "Captions") From e2fc712c91736c9481a88a2776ee41775729be34 Mon Sep 17 00:00:00 2001 From: Morgan Oscar Morel Date: Thu, 3 Apr 2025 14:24:59 -0400 Subject: [PATCH 3/5] fixed format names again fixed format names in the case selection section as well --- vrecord | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vrecord b/vrecord index 17b34ca3..c5f3cb12 100755 --- a/vrecord +++ b/vrecord @@ -1922,7 +1922,7 @@ _lookup_choice(){ MIDDLEOPTIONS+=(-color_primaries bt709) MIDDLEOPTIONS+=(-color_trc bt709) MIDDLEOPTIONS+=(-colorspace bt709) ;; - "Hi50 - 1080i25") + "Hi50 - 1080i50") STANDARD="Hi50" DECKLINK_FPS="25000/1000" if [[ "${VIDEO_CODEC_CHOICE}" = "h264" ]] ; then @@ -1931,7 +1931,7 @@ _lookup_choice(){ MIDDLEOPTIONS+=(-color_primaries bt709) MIDDLEOPTIONS+=(-color_trc bt709) MIDDLEOPTIONS+=(-colorspace bt709) ;; - "Hi59 - 1080i29.97") + "Hi59 - 1080i59.94") STANDARD="Hi59" DECKLINK_FPS="30000/1001" if [[ "${VIDEO_CODEC_CHOICE}" = "h264" ]] ; then @@ -1940,7 +1940,7 @@ _lookup_choice(){ MIDDLEOPTIONS+=(-color_primaries bt709) MIDDLEOPTIONS+=(-color_trc bt709) MIDDLEOPTIONS+=(-colorspace bt709) ;; - "Hi60 - 1080i30") + "Hi60 - 1080i60") STANDARD="Hi60" DECKLINK_FPS="30000/1000" if [[ "${VIDEO_CODEC_CHOICE}" = "h264" ]] ; then From a709b1d6b7887f7473ba5e27527868264c2b6367 Mon Sep 17 00:00:00 2001 From: Morgan Oscar Morel Date: Thu, 3 Apr 2025 14:46:47 -0400 Subject: [PATCH 4/5] fixed 720p59.94 canged 720p59.97 to 720p59.94 --- vrecord | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vrecord b/vrecord index c5f3cb12..be08d205 100755 --- a/vrecord +++ b/vrecord @@ -1955,7 +1955,7 @@ _lookup_choice(){ MIDDLEOPTIONS+=(-color_primaries bt709) MIDDLEOPTIONS+=(-color_trc bt709) MIDDLEOPTIONS+=(-colorspace bt709) ;; - "hp59 - 720p59.97") + "hp59 - 720p59.94") STANDARD="hp59" DECKLINK_FPS="60000/1001" MIDDLEOPTIONS+=(-color_primaries bt709) @@ -2500,7 +2500,7 @@ PAL_43_SAR_OPTIONS=("12/11" "16/15" "128/117") PAL_169_SAR_OPTIONS=("16/11" "64/45" "512/351") CHANNEL_MAPPING_OPTIONS=("2 Stereo Tracks (Channels 1 & 2 -> 1st Track Stereo, Channels 3 & 4 -> 2nd Track Stereo)" "1 Stereo Track (From Channels 1 & 2)" "1 Stereo Track (From Channels 3 & 4)" "Channel 1 -> 1st Track Mono, Channel 2 -> 2nd Track Mono" "Channel 2 -> 1st Track Mono, Channel 1 -> 2nd Track Mono" "Channel 1 -> Single Track Mono" "Channel 2 -> Single Track Mono") TIMECODE_OPTIONS=("none" "rp188vitc" "rp188vitc2" "rp188ltc" "rp188any" "vitc" "vitc2" "serial") -STANDARD_OPTIONS=("NTSC" "PAL" "23ps - 1080p23.98" "24ps - 1080p24" "Hp25 - 1080p25" "Hp29 - 1080p29.97" "Hp30 - 1080p30" "Hi50 - 1080i50" "Hi59 - 1080i59.94" "Hi60 - 1080i60" "hp50 - 720p50" "hp59 - 720p59.97" "hp60 - 720p60") +STANDARD_OPTIONS=("NTSC" "PAL" "23ps - 1080p23.98" "24ps - 1080p24" "Hp25 - 1080p25" "Hp29 - 1080p29.97" "Hp30 - 1080p30" "Hi50 - 1080i50" "Hi59 - 1080i59.94" "Hi60 - 1080i60" "hp50 - 720p50" "hp59 - 720p59.94" "hp60 - 720p60") QCTOOLSXML_OPTIONS=("Yes, concurrent with recording" "Yes, after recording" "No") EMBED_LOGS_OPTIONS=("Yes" "No") PLAYBACKVIEW_OPTIONS=("Unfiltered" "Visual" "Audio + Video" "Visual + Numerical" "Color Matrix" "Bit Planes" "Frame Positioning" "Captions") From 77ea0c2b30b58c4a9fe2a61b499c0063d21c63f6 Mon Sep 17 00:00:00 2001 From: Morgan Oscar Morel Date: Tue, 8 Apr 2025 14:40:31 -0400 Subject: [PATCH 5/5] Added refreshes It doesn't work yet --- Resources/vrecord_functions | 3 ++- vrecord | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Resources/vrecord_functions b/Resources/vrecord_functions index f17300e7..2b983e18 100644 --- a/Resources/vrecord_functions +++ b/Resources/vrecord_functions @@ -90,12 +90,13 @@ _update_config_file(){ echo "MP4_CRF_VALUE=\"${MP4_CRF_VALUE}\"" echo "CC2VTT=\"${CC2VTT}\"" echo "CC2SRT=\"${CC2SRT}\"" + echo "HD_CHOICE=\"${HD_CHOICE}\"" } > "${CONFIG_FILE}" . "${CONFIG_FILE}" } _validate_form(){ - + if [ "${VIDEO_CODEC_CHOICE}" = "FFV1 version 3" ] && [ "${CONTAINER_CHOICE}" = "MXF" ] ; then echo "ERROR: Incompatible video codecs and containers have been selected." elif [ "${AUDIO_CODEC_CHOICE}" = "24-bit FLAC" ] && [ "${CONTAINER_CHOICE}" = "QuickTime" ] ; then diff --git a/vrecord b/vrecord index be08d205..9a668f7b 100755 --- a/vrecord +++ b/vrecord @@ -419,6 +419,18 @@ _gtk_vbox_list() { _update_config_file timecode_scan " + elif [[ "${VARIABLE_NAME}" == "STANDARD_CHOICE" ]] ; then + echo " + + + \"${HD_CHOICE}\" + HD_CHOICE + _update_config_file + STANDARD_CHOICE + STANDARD_CHOICE + STANDARD_CHOICE + refresh + " elif [[ "${VARIABLE_NAME}" == "EMBED_LOGS_CHOICE" ]] ; then echo "$(if $MKVPROPEDIT_INSTALLED ; then echo true ; else echo false ; fi)" elif [[ "${VARIABLE_NAME}" == "QCTOOLSXML_CHOICE" ]] ; then @@ -566,7 +578,7 @@ _setup_vrecord_process(){ VRECORD_STEPS="1" # Steps: player fi fi - + # caption handling if ntsc if [[ "${STANDARD}" == "ntsc" ]] ; then CAPTION_TMP="$(_maketemp .eia608.txt)" @@ -2500,7 +2512,11 @@ PAL_43_SAR_OPTIONS=("12/11" "16/15" "128/117") PAL_169_SAR_OPTIONS=("16/11" "64/45" "512/351") CHANNEL_MAPPING_OPTIONS=("2 Stereo Tracks (Channels 1 & 2 -> 1st Track Stereo, Channels 3 & 4 -> 2nd Track Stereo)" "1 Stereo Track (From Channels 1 & 2)" "1 Stereo Track (From Channels 3 & 4)" "Channel 1 -> 1st Track Mono, Channel 2 -> 2nd Track Mono" "Channel 2 -> 1st Track Mono, Channel 1 -> 2nd Track Mono" "Channel 1 -> Single Track Mono" "Channel 2 -> Single Track Mono") TIMECODE_OPTIONS=("none" "rp188vitc" "rp188vitc2" "rp188ltc" "rp188any" "vitc" "vitc2" "serial") -STANDARD_OPTIONS=("NTSC" "PAL" "23ps - 1080p23.98" "24ps - 1080p24" "Hp25 - 1080p25" "Hp29 - 1080p29.97" "Hp30 - 1080p30" "Hi50 - 1080i50" "Hi59 - 1080i59.94" "Hi60 - 1080i60" "hp50 - 720p50" "hp59 - 720p59.94" "hp60 - 720p60") +if [[ ${HD_CHOICE} != "true" ]] ; then + STANDARD_OPTIONS=("NTSC" "PAL") +else + STANDARD_OPTIONS=("NTSC" "PAL" "23ps - 1080p23.98" "24ps - 1080p24" "Hp25 - 1080p25" "Hp29 - 1080p29.97" "Hp30 - 1080p30" "Hi50 - 1080i50" "Hi59 - 1080i59.94" "Hi60 - 1080i60" "hp50 - 720p50" "hp59 - 720p59.94" "hp60 - 720p60") +fi QCTOOLSXML_OPTIONS=("Yes, concurrent with recording" "Yes, after recording" "No") EMBED_LOGS_OPTIONS=("Yes" "No") PLAYBACKVIEW_OPTIONS=("Unfiltered" "Visual" "Audio + Video" "Visual + Numerical" "Color Matrix" "Bit Planes" "Frame Positioning" "Captions")