diff --git a/265_audio_problems b/265_audio_problems index 235f6a5..4df81ff 100755 --- a/265_audio_problems +++ b/265_audio_problems @@ -14,9 +14,9 @@ for video; do extension="${filename##*.}" filename="${filename%.*}" video_codec=$(mediainfo --Inform="Video;%Format%" "${video}") - echo -e "${video} // ${video_codec} // ${audio_codec}" + echo -e "${video} // ${video_codec}" if [[ ! ${video_codec} =~ "HEVC" ]]; then - _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/XviD/x265/g').mkv + _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/AVC/x265/g' -e 's/XviD/x265/g').mkv nice -n 19 ffmpeg -hide_banner -loglevel info -y -threads 4 -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -analyzeduration 20000000 -probesize 20000000 \ -i "${video}" -map 0:v -map 0:a -map 0:s? -map 0:d? -map 0:t? -c:s copy \ -c:a libopus -b:a 128k -vbr on -compression_level 10 -frame_duration 60 -application audio -mapping_family 1 -ac 2 \ diff --git a/265_personal b/265_personal index 6e6eead..15b101e 100755 --- a/265_personal +++ b/265_personal @@ -19,9 +19,9 @@ for video; do extension="${filename##*.}" filename="${filename%.*}" video_codec=$(nice -n 19 mediainfo --Inform="Video;%Format%" "${video}") - echo -e "${video} // ${video_codec} // ${audio_codec}" + echo -e "${video} // ${video_codec}" if [[ ! ${video_codec} =~ "HEVC" ]]; then - _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/XviD/x265/g')_H265.mkv + _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/AVC/x265/g' -e 's/XviD/x265/g')_H265.mkv nice -n 19 ffmpeg -hide_banner -loglevel info -y -threads 4 -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device /dev/dri/renderD128 -analyzeduration 20000000 -probesize 20000000 \ -i "${video}" -map 0:v -map 0:a -map 0:s? -map 0:d? -map 0:t? -c:s copy \ -vf 'scale_vaapi=format=p010,scale_vaapi=w=1920:-2' \ diff --git a/265_poster_problems b/265_poster_problems index ca1e96d..748aa62 100755 --- a/265_poster_problems +++ b/265_poster_problems @@ -14,9 +14,9 @@ for video; do extension="${filename##*.}" filename="${filename%.*}" video_codec=$(nice -n 19 mediainfo --Inform="Video;%Format%" "${video}") - echo -e "${video} // ${video_codec} // ${audio_codec}" + echo -e "${video} // ${video_codec}" if [[ ! ${video_codec} =~ "HEVC" ]]; then - _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/XviD/x265/g').mkv + _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/AVC/x265/g' -e 's/XviD/x265/g').mkv nice -n 19 ffmpeg -hide_banner -loglevel info -y -threads 4 -vaapi_device /dev/dri/renderD128 -analyzeduration 20000000 -probesize 20000000 \ -i "${video}" -map 0:v:0 -map 0:a -c:a copy -vf 'format=nv12,hwupload' \ -c:v hevc_vaapi \ diff --git a/265_problems b/265_problems index 03e16d0..0fc18a7 100755 --- a/265_problems +++ b/265_problems @@ -14,7 +14,7 @@ for video; do extension="${filename##*.}" filename="${filename%.*}" video_codec=$(nice -n 19 mediainfo --Inform="Video;%Format%" "${video}") - echo -e "${video} // ${video_codec} // ${audio_codec}" + echo -e "${video} // ${video_codec}" if [[ ! ${video_codec} =~ "HEVC" ]]; then _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/XviD/x265/g').mkv #nice -n 19 ffmpeg -hide_banner -loglevel info -y -threads 4 -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -analyzeduration 20000000 -probesize 20000000 \ diff --git a/265_system b/265_system index 41d139d..170aa70 100755 --- a/265_system +++ b/265_system @@ -13,21 +13,25 @@ export LD_LIBRARY_PATH="/opt/amdgpu/libdrm/lib64:/opt/amdgpu/libdrm/lib32:$LD_LI export VK_ICD_FILENAMES="${PRO_DIR}/amd_icd32.json:${PRO_DIR}/amd_icd64.json" for video; do + if [[ ! -f "${video}.json" ]]; then + ffprobe -v quiet -print_format json -show_streams "${video}" >"${video}.json" + fi d=$(dirname "$video") filename=$(basename "$video") - extension="${filename##*.}" filename="${filename%.*}" - video_codec=$(nice -n 19 mediainfo --Inform="Video;%Format%" "${video}") - echo -e "${video} // ${video_codec} // ${audio_codec}" - if [[ ! ${video_codec} =~ "HEVC" ]]; then - _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/XviD/x265/g').mkv + video_codec=$(jq -r '.streams[0].codec_name' <"${video}.json") + video_height=$(jq -r '.streams[0].height' <"${video}.json") + echo -e "${video} // ${video_codec} // ${video_height}" + if [[ ! ${video_codec} =~ "hevc" || ${video_height} -gt 1080 ]]; then + _filename=$(echo "${filename}" | sed -e 's/h264/x265/g' -e 's/x264/x265/g' -e 's/AVC/x265/g' -e 's/XviD/x265/g').mkv nice -n 19 ffmpeg -hide_banner -loglevel info -y -threads 4 -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -analyzeduration 20000000 -probesize 20000000 \ -i "${video}" -map 0:v -map 0:a -map 0:s? -map 0:d? -map 0:t? -c:s copy -c:a copy \ -vf 'scale_vaapi=format=p010,scale_vaapi=w=1920:-2' -c:v hevc_vaapi -profile:v main10 \ -max_muxing_queue_size 1024 -movflags +faststart -movflags use_metadata_tags "/dev/shm/$_filename" || exit 1 mv -vu "/dev/shm/${_filename}" "${d}/${_filename}" || rm -f "/dev/shm/${_filename}" if [[ -f "${d}/${_filename}" ]]; then - cmp "${d}/${_filename}" "${video}" || rm -vf "${video}" + cmp "${d}/${_filename}" "${video}" || rm -vf "${video}" "${video}.json" + ffprobe -v quiet -print_format json -show_streams "${d}/${_filename}" >"${d}/${_filename}.json" fi fi done