Время изменения файла может быть свободно выбрано владельцем файла. Можно проверить время изменения inode файла (ctime): тот может только когда-либо устанавливаться на текущее время, и любая модификация метаданных файла, таких как изменение mtime сбрасывает ctime к текущему времени.
Если Вы хотите проверить, не изменился ли файл начиная с определенной даты можно проверить ее ctime. Но ctime мог быть более свежим по ненизким причинам, таким как изменение атрибутов, перемещенного или скопированного файла, восстановления от резервного копирования, …
Конечно, пользователь root может обойти это путем изменения системного времени или управления файлом непосредственно.
Надежный способ протестировать состояние файла в определенное время в прошлом состоит в том, чтобы консультироваться со снимком или резервным копированием, сделанным в то время.
Если вы хотите переключиться на пульсаудио, то скрипт, подобный этому, будет работать:
#!/usr/bin/bash
# video information
INRES="1920x1080"
OUTRES="1280x720"
FPS="24"
QUAL="fast"
FILE_OUT="$1"
#audio information
PULSE_IN="alsa_input.pci-0000_00_1b.0.analog-stereo"
PULSE_OUT="alsa_output.pci-0000_00_1b.0.analog-stereo.monitor"
ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 \
-f pulse -i "$PULSE_IN" -f pulse -i "$PULSE_OUT" \
-filter_complex amerge \
-vcodec libx264 -crf 30 -preset "$QUAL" -s "$OUTRES" \
-acodec libmp3lame -ab 96k -ar 44100 -threads 4 -pix_fmt yuv420p \
-f flv "$FILE_OUT"
$PULSE_IN
и $PULSE_OUT
- это имена источника входного (микрофонного) сигнала и источника выходного (акустического) сигнала монитора. В Pulseaudio есть так называемые "мониторные источники", которые позволяют записывать выход громкоговорителя. Вы можете найти названия источников с помощью команды pactl list sources | grep 'Name:'
К сожалению, я не знаю, как включить источник стерео микса в чистом виде alsa, так что пульс, вероятно, ваш лучший вариант.