Я хотел бы оцифровать старые кассеты VHS с EasyCAP STK1160 под Linux. Композитный видеовход - /dev/video1
, а hw:2,0
для композитного двухканального звука USB ALSA.
Для захвата потоков в необработанном формате я использую:
ffmpeg -f alsa -ac 2 -i hw:2,0 -f rawvideo -r 25 -s 720x576 -i /dev/video1 -codec:a pcm_s16le -codec:v rawvideo -f rawvideo raw_streams.raw
Для кодирования необработанного файла в h264 в два прохода я использую:
time ffmpeg -f rawvideo -codec:v rawvideo -s:v 720x576 -r 25 -pix_fmt yuyv422 -deinterlace -i raw_streams.raw -pass 1 -codec:v libx264 -codec:a libfdk_aac -b:a 128k -preset ultrafast -y -b:v 6100k -f mp4 /dev/null
time ffmpeg -f rawvideo -codec:v rawvideo -s:v 720x576 -r 25 -pix_fmt yuyv422 -deinterlace -i raw_streams.raw -pass 2 -codec:v libx264 -codec:a libfdk_aac -b:a 128k -preset ultrafast -y -b:v 6100k -f mp4 "final.mp4"
Вопрос № 1: Полученный закодированный .mp4 имеет хорошее видео, но без звука. Как добавить звуковой канал в необработанный файл, а затем в mp4? Успешная запись только звука с помощью следующей команды показывает, что в линии есть звук.
ffmpeg -f alsa -i hw:2,0 output.wav
Вопрос № 2: Как мне указать PAL-B в качестве формата захвата видео для необработанного видео? man ffmpeg
, похоже, не располагает информацией по этому вопросу.
Вопрос № 3: Поскольку не во всех кассетах есть записи по всей длине, я также хотел бы просматривать потоковую передачу во время захвата, чтобы знать, когда следует остановиться. Я делаю это с:
mplayer -fps 25 tv:// -tv driver=v4l2:device=/dev/video1
Я либо просматривать поток или захват. Попытка выполнить оба этих действия приводит к следующей ошибке: /dev/video1: Device or resource busy
Как я могу сделать это одновременно?