Вы могли бы сделать:
find . -type f -name '*.flac' -execdir sh -c '
if [ ! -d mp3 ] && [ ! -d Mp3 ]; then
for file do
ffmpeg -i "$file" -qscale:a 2 -map_metadata 0 -id3v2_version 3 "${file%.*}.mp3"
done
fi' sh {} +
идея состоит в том, что с -execdir cmd {} +
, (с некоторыми версиями GNU find
), find
будет запускать cmd
для всех соответствующий файл в заданном каталоге.
Я говорю в некоторых версиях GNU find , потому что раньше он работал так, но затем был сломан в некоторых версиях find
(где вы получите один cmd
вызов для каждого файла, как если бы вы использовали -execdir cmd {} \;
), и это было снова исправлено в более поздней версии.
Вы можете проверить, есть ли у вас правильная версия с помощью:
find . -execdir echo {} +
Вы должны получить одну строку на каталог с правильной версией или одну строку на файл с менее правильными.
Если у вас правильная версия, и при условии, что у вас нет тысяч файлов flac в каждом каталоге, вы можете выполнить оба действия за один раз:
find . -type f -name '*.flac' -execdir sh -c '
if [ ! -d mp3 ] && [ ! -d Mp3 ]; then
mkdir Mp3 || exit
for file do
ffmpeg -i "$file" -qscale:a 2 -map_metadata 0 -id3v2_version 3 "Mp3/${file%.*}.mp3"
done
fi' sh {} +
FFmpeg блокируется только при CUDA init, если поток h264_nvenc был запущен (и остановлен, но это не обязательно) до перевода системы в состояние suspend. Если OBS никогда не записывал ничего с кодировщиком h264_nvenc до приостановки, он будет работать нормально, когда вы снова войдете в систему.
Если OBS заблокировался после входа в систему, он станет работоспособным, если:
Запустить в терминале:
sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm
Откройте OBS снова
Если выгрузка nvidia_uvm
не работает, возможно, потребуется перезагрузить модули DRM и modeset, хотя у меня никогда не было такой проблемы.