У меня есть карта ТВ-тюнера, которая отображается как /dev/video1
. Я пытаюсь оцифровать некоторые старые кассеты VHS. ТВ-тюнер не воспроизводит звук, к моему микрофону подключен провод.
Это конвейер gstreamer, который я использую для захвата видео и аудио и сохранения его в файл. Я использую motion jpeg, потому что я не хочу, чтобы он отбрасывал кадры и терял контент. Я закодирую это лучше позже.
gst-launch-0.10 v4l2src device=/dev/video1 ! \
queue ! \
video/x-raw-yuv,width=640,height=480 ! \
ffmpegcolorspace ! \
jpegenc ! \
avimux name=mux ! \
filesink location=output.avi \
pulsesrc ! \
queue ! \
audioconvert ! \
audio/x-raw-int,rate=44100,channels=2 ! \
mux.
Это все работает хорошо и хорошо. У меня есть файлы, которые воспроизводят видео и аудио. Однако иногда при воспроизведении выходных файлов аудио и видео не синхронизируются. Это происходит в одном и том же месте на видео, на разных медиапроигрывателях (totem, mplayer). Поэтому я думаю, что это проблема в том, как я сохраняю и записываю файл.
Могу ли я что-нибудь сделать с конвейером, чтобы уменьшить вероятность возникновения проблем с синхронизацией аудио / видео? Я немного новичок в gstreamer и видео / аудио кодеках, так что я мог бы сделать что-то глупое здесь (пожалуйста, укажите!). Есть ли какой-нибудь видео / аудио / muxer кодек, который был бы лучше?