Skip to content

Commit 05a73b6

Browse files
committed
temp arghargharhgargh
1 parent 6905e66 commit 05a73b6

1 file changed

Lines changed: 45 additions & 26 deletions

File tree

vrecord

Lines changed: 45 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -576,11 +576,22 @@ _setup_vrecord_process(){
576576
if [[ -n "${VIDEOCODECNAME}" ]] ; then
577577
MIDDLEOPTIONS_PRES+=(-metadata:s:v:0 encoder="${VIDEOCODECNAME}")
578578
fi
579-
RECORD_COMMAND+=("${MIDDLEOPTIONS_PRES[@]}" "${MIDDLEOPTIONS_ALL[@]}")
580579
if [[ "${RUNTYPE}" = "record" ]] ; then
581-
RECORD_COMMAND+=(-filter_complex "[0:v:0]${RECORDINGFILTER#,*}${TC_WRITE}${CAPTION_WRITE}[vout];${AUDIOMAP}" -map "[vout]" "${AUDIO_CHANNEL_MAP[@]}")
582-
RECORD_COMMAND+=(-f tee [f=${FORMAT}:select=v,${AUDIO_TEE_SELECT_MAP}]"${VRECORD_OUTPUT}"\|[f=nut:onfail=abort:select=v,${AUDIO_TEE_SELECT_MAP},a\\\\:0]pipe:1"${EXTRA_TEE_OUTPUTS}")
583-
RECORD_COMMAND+=("${EXTRAOUTPUTS[@]}")
580+
if [[ -n "${EXTRA_MP4_FILTER}" ]] ; then
581+
FILTER_CHAIN_ADDITIONS="${EXTRA_MP4_FILTER}"
582+
SELECTED_AUDIO_MAP="${AUDIOMAP_MP4}"
583+
echo "HEYYY Y $FILTER_CHAIN_ADDITIONS"
584+
else
585+
FILTER_CHAIN_ADDITIONS="[vout]"
586+
SELECTED_AUDIO_MAP="${AUDIOMAP}"
587+
echo "HEYYY N"
588+
fi
589+
RECORD_COMMAND+=(-filter_complex "[0:v:0]${RECORDINGFILTER#,*}${TC_WRITE}${CAPTION_WRITE}${FILTER_CHAIN_ADDITIONS};${SELECTED_AUDIO_MAP}" -map "[vout]" "${AUDIO_CHANNEL_MAP[@]}")
590+
RECORD_COMMAND+=("${MIDDLEOPTIONS_PRES[@]}" "${MIDDLEOPTIONS_ALL[@]}")
591+
if [[ -n "${EXTRA_MP4_FILTER}" ]] ; then
592+
RECORD_COMMAND+=("${EXTRA_MP4_CODER[@]}")
593+
fi
594+
RECORD_COMMAND+=(-f tee [f=${FORMAT}:select=v\\\\:0,${AUDIO_TEE_SELECT_MAP}]"${VRECORD_OUTPUT}"\|[f=nut:onfail=abort:select=v\\\\:0,${AUDIO_TEE_SELECT_MAP},a\\\\:0]pipe:1"${EXTRA_TEE_OUTPUTS[@]}")
584595
else
585596
if [[ "${SIGNAL_INPUT}" = 'true' ]] ; then
586597
PIPE_OUTPUT=(-c:v ffv1)
@@ -1746,6 +1757,8 @@ _set_some_params(){
17461757
fi
17471758
}
17481759

1760+
# this is the audio codec template for all sidecar mp4s
1761+
AUDIO_CODER_TEMPLATE_MP4=(-map "[stereoXXXMP4]" -c:a:XXX aac)
17491762
# decipher vrecord options as specified by user
17501763
_lookup_choice(){
17511764
case "${2}" in
@@ -1794,38 +1807,38 @@ _lookup_choice(){
17941807
_add_mediaconch_rule_set "${CODEC_UNCOMPRESSED_TEST}"
17951808
if [[ "${PIXEL_FORMAT}" = "yuv422p10" ]] ; then
17961809
VIDEOCODECNAME="Uncompressed 10-bit 4:2:2"
1797-
MIDDLEOPTIONS_PRES+=(-c:v v210)
1810+
MIDDLEOPTIONS_PRES+=(-c:v:0 v210)
17981811
elif [[ "${PIXEL_FORMAT}" = "uyvy422" ]] ; then
17991812
VIDEOCODECNAME="Uncompressed 8-bit 4:2:2"
1800-
MIDDLEOPTIONS_PRES+=(-c:v rawvideo -pix_fmt uyvy422 -tag:v 2vuy)
1813+
MIDDLEOPTIONS_PRES+=(-c:v:0 rawvideo -pix_fmt:v:0 uyvy422 -tag:v:0 2vuy)
18011814
fi ;;
18021815
"FFV1 version 3")
18031816
_add_mediaconch_rule_set "${CODEC_FFV1_TEST}"
18041817
VIDEOCODECNAME="FFV1 version 3"
1805-
MIDDLEOPTIONS_PRES+=(-c:v ffv1 -level 3 -g 1 -slices "${FFV1_SLICE_CHOICE}" -slicecrc 1)
1818+
MIDDLEOPTIONS_PRES+=(-c:v:0 ffv1 -level:v:0 3 -g:v:0 1 -slices:v:0 "${FFV1_SLICE_CHOICE}" -slicecrc:v:0 1)
18061819
SUFFIX="_ffv1" ;;
18071820
"JPEG2000")
18081821
VIDEOCODECNAME="JPEG2000"
1809-
MIDDLEOPTIONS_PRES+=(-c:v libopenjpeg)
1822+
MIDDLEOPTIONS_PRES+=(-c:v:0 libopenjpeg)
18101823
SUFFIX="_j2k" ;;
18111824
"ProRes")
18121825
VIDEOCODECNAME="Apple ProRes 422"
1813-
MIDDLEOPTIONS_PRES+=(-c:v prores_ks -flags +ildct -profile:v 2)
1826+
MIDDLEOPTIONS_PRES+=(-c:v:0 prores_ks -flags +ildct -profile:v:0 2)
18141827
SUFFIX="_prores" ;;
18151828
"ProRes (HQ)")
18161829
VIDEOCODECNAME="Apple ProRes 422 HQ"
1817-
MIDDLEOPTIONS_PRES+=(-c:v prores_ks -flags +ildct -profile:v 3)
1830+
MIDDLEOPTIONS_PRES+=(-c:v:0 prores_ks -flags +ildct -profile:v:0 3)
18181831
SUFFIX="_prores" ;;
18191832
"h264")
18201833
VIDEOCODECNAME="H.264"
1821-
MIDDLEOPTIONS_PRES+=(-c:v h264 -pix_fmt yuv420p)
1834+
MIDDLEOPTIONS_PRES+=(-c:v:0 h264 -pix_fmt:v:0 yuv420p)
18221835
SUFFIX="_h264" ;;
18231836
"HuffYUV")
18241837
VIDEOCODECNAME="HuffYUV"
18251838
if [[ "${PIXEL_FORMAT}" = "yuv422p10" ]] ; then
1826-
MIDDLEOPTIONS_PRES+=(-c:v ffvhuff -pix_fmt yuv422p10le -pred median -context 1)
1839+
MIDDLEOPTIONS_PRES+=(-c:v:0 ffvhuff -pix_fmt:v:0 yuv422p10le -pred:v:0 median -context:v:0 1)
18271840
elif [[ "${PIXEL_FORMAT}" = "uyvy422" ]] ; then
1828-
MIDDLEOPTIONS_PRES+=(-c:v ffvhuff -pix_fmt yuv422p -pred median -context 1)
1841+
MIDDLEOPTIONS_PRES+=(-c:v:0 ffvhuff -pix_fmt:v:0 yuv422p -pred:v:0 median -context:v:0 1)
18291842
fi
18301843
SUFFIX="_huff" ;;
18311844

@@ -1835,25 +1848,30 @@ _lookup_choice(){
18351848

18361849
# audio codec
18371850
"24-bit PCM")
1838-
MIDDLEOPTIONS_PRES+=(-c:a pcm_s24le)
1851+
AUDIO_CODER_TEMPLATE+=(-c:a:XXX pcm_s24le)
18391852
AUDIO_EXT='wav' ;;
18401853
"24-bit FLAC")
1841-
MIDDLEOPTIONS_PRES+=(-c:a flac)
1842-
MIDDLEOPTIONS_PRES+=(-sample_fmt s32)
1843-
MIDDLEOPTIONS_PRES+=(-bits_per_raw_sample:a 24)
1854+
AUDIO_CODER_TEMPLATE+=(-c:a:XXX flac)
1855+
AUDIO_CODER_TEMPLATE+=(-sample_fmt:a:XXX s32)
1856+
AUDIO_CODER_TEMPLATE+=(-bits_per_raw_sample:a:XXX 24)
18441857
AUDIO_EXT='flac' ;;
18451858
"AAC")
1846-
MIDDLEOPTIONS_PRES+=(-c:a aac) ;;
1859+
MIDDLEOPTIONS_PRES+=(-c:a:XXX aac) ;;
18471860

18481861
# audio mappings
18491862
"2 Stereo Tracks (Channels 1 & 2 -> 1st Track Stereo, Channels 3 & 4 -> 2nd Track Stereo)")
18501863
AUDIOMAP="[0:a:0]asplit[orig],pan=stereo| c0=c0 | c1=${PHASE_VALUE_2}c1[stereo1];[0:a:0]pan=stereo| c0=c2 | c1=${PHASE_VALUE_4}c3[stereo2]"
1864+
AUDIOMAP_MP4="[0:a:0]asplit[orig],pan=stereo| c0=c0 | c1=${PHASE_VALUE_2}c1,asplit=2[stereo1][stereo3MP4];[0:a:0]pan=stereo| c0=c2 | c1=${PHASE_VALUE_4}c3,asplit=2[stereo2][stereo4MP4]"
18511865
AUDIO_PLAY_MAP="pan=4c|c0=c0|c1=${PHASE_VALUE_2}c1|c2=c2|c3=${PHASE_VALUE_4}c3"
18521866
AUDIO_PLAY_LABELS=",drawtext=fontfile=${DEFAULTFONT}:text='L(1)':fontcolor=white:fontsize=18:x=0:y=0,drawtext=fontfile=${DEFAULTFONT}:text='R(1)':fontcolor=white:fontsize=18:x=0:y=20,drawtext=fontfile=${DEFAULTFONT}:text='L(2)':fontcolor=white:fontsize=18:x=0:y=40,drawtext=fontfile=${DEFAULTFONT}:text='R(2)':fontcolor=white:fontsize=18:x=0:y=60"
1853-
AUDIO_CHANNEL_MAP+=(-map "[orig]")
1854-
AUDIO_CHANNEL_MAP+=(-map "[stereo1]")
1855-
AUDIO_CHANNEL_MAP+=(-map "[stereo2]")
1856-
AUDIO_TEE_SELECT_MAP="a\\\\:1,a\\\\:2" ;;
1867+
AUDIO_CHANNEL_MAP+=(-map "[orig]" -c:a:0 flac)
1868+
AUDIO_CODER_TEMPLATE+=(-map "[stereoXXX]")
1869+
AUDIO_CHANNEL_MAP+=("${AUDIO_CODER_TEMPLATE[@]//XXX/1}")
1870+
AUDIO_CHANNEL_MAP+=("${AUDIO_CODER_TEMPLATE[@]//XXX/2}")
1871+
AUDIO_TEE_SELECT_MAP="a\\\\:1,a\\\\:2"
1872+
AUDIO_CHANNEL_MAP_MP4+=("${AUDIO_CODER_TEMPLATE_MP4[@]//XXX/3}")
1873+
AUDIO_CHANNEL_MAP_MP4+=("${AUDIO_CODER_TEMPLATE_MP4[@]//XXX/4}")
1874+
AUDIO_TEE_SELECT_MAP_MP4="a\\\\:3,a\\\\:4" ;;
18571875
"1 Stereo Track (From Channels 1 & 2)")
18581876
AUDIOMAP="[0:a:0]asplit[orig],pan=stereo| c0=c0 | c1=${PHASE_VALUE_2}c1[stereo1]"
18591877
AUDIO_PLAY_MAP="pan=stereo|c0=c0|c1=${PHASE_VALUE_2}c1"
@@ -2445,6 +2463,7 @@ _review_all_options(){
24452463
_review_option "VIDEO_INPUT_CHOICE" "${VIDEO_INPUT_OPTIONS[@]}"
24462464
_review_option "AUDIO_INPUT_CHOICE" "${AUDIO_INPUT_OPTIONS[@]}"
24472465
_review_option "VIDEO_BIT_DEPTH_CHOICE" "${VIDEO_BITDEPTH_OPTIONS[@]}"
2466+
_review_option "AUDIO_CODEC_CHOICE" "${AUDIO_CODEC_OPTIONS[@]}"
24482467
_review_option "AUDIO_MAPPING_CHOICE" "${CHANNEL_MAPPING_OPTIONS[@]}"
24492468
if [[ -z "${ALT_INPUT}" ]] ; then
24502469
_review_option "TIMECODE_CHOICE" "${TIMECODE_OPTIONS[@]}"
@@ -2889,7 +2908,6 @@ if [[ "${DEVICE_INPUT_CHOICE}" = "0" ]] ; then
28892908
if [[ "${VIDEO_CODEC_CHOICE}" = "FFV1 version 3" ]] ; then
28902909
_review_option -n -d "16" "FFV1_SLICE_CHOICE" "${FFV1_SLICE_OPTIONS[@]}"
28912910
fi
2892-
_review_option "AUDIO_CODEC_CHOICE" "${AUDIO_CODEC_OPTIONS[@]}"
28932911
elif [[ "${DEVICE_INPUT_CHOICE}" = "1" ]] ; then
28942912
_review_option "DV_CONTAINER_CHOICE" "${DV_CONTAINER_OPTIONS[@]}"
28952913
FORMAT="rawvideo"
@@ -2933,16 +2951,17 @@ if [[ "${DEVICE_INPUT_CHOICE}" = "0" ]] ; then
29332951
fi
29342952
if [[ "${FRAMEMD5_CHOICE}" = "true" ]] ; then
29352953
FRAMEMD5NAME="${LOGDIR}/${FULL_OUTPUT_ID}.framemd5"
2936-
EXTRA_TEE_OUTPUTS+=("|[f=framemd5:select=v]${FRAMEMD5NAME}")
2954+
EXTRA_TEE_OUTPUTS+="|[f=framemd5:select=v\\\\:0]${FRAMEMD5NAME}"
29372955
fi
29382956
if [[ "${SIGNAL_INPUT}" = 'true' ]] ; then
29392957
AUDIOMAP=$(sed "s/0:a:0/1:a:0/g" <<< "$AUDIOMAP")
29402958
fi
29412959
if [[ "${MP4_CHOICE}" = "true" ]] ; then
29422960
RECORDINGFILTER_MP4+=",bwdif"
2943-
RECORD_COMMAND_MP4+=(-filter_complex "[0:v:0]${RECORDINGFILTER_MP4#,*}[mp4_v_out];${AUDIOMAP}")
29442961
MP4NAME="${DIR}/${FULL_OUTPUT_ID}.mp4"
2945-
EXTRAOUTPUTS+=("${MIDDLEOPTIONS_ALL[@]}" -movflags write_colr+faststart "${RECORD_COMMAND_MP4[@]}" -pix_fmt yuv420p -c:v h264 -c:a aac -map "[mp4_v_out]" "${AUDIO_CHANNEL_MAP[@]}" "${MP4NAME}")
2962+
EXTRA_MP4_FILTER=",split=2[vout][mp4_v];[mp4_v]${RECORDINGFILTER_MP4#,*}[mp4_v_out]"
2963+
EXTRA_MP4_CODER=(-map "[mp4_v_out]" "${MIDDLEOPTIONS_ALL[@]}" -c:v:1 libopenh264 -pix_fmt:v:1 yuv420p "${AUDIO_CHANNEL_MAP_MP4[@]}")
2964+
EXTRA_TEE_OUTPUTS+="|[f=mp4:movflags=write_colr+faststart:select=v\\\\:1,${AUDIO_TEE_SELECT_MAP_MP4}]${MP4NAME}"
29462965
fi
29472966
if [[ "${FORMAT}" = "Matroska" ]] ; then
29482967
_review_option "EMBED_LOGS_CHOICE" "${EMBED_LOGS_OPTIONS[@]}"

0 commit comments

Comments
 (0)