Я использую MediaRecorder API для создания видео с веб-камеры в Firefox, но он создает видеофайлы с некоторыми сбоями. Вот пример видео, созданного таким образом. Когда я запускаю его на VLC Player, это звучит очень неправильно.
Вот ffprobe (это веб-видео):
ffprobe version git-2015-12-11-df2ce13 Copyright (c) 2007-2015 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04)
configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-x11grab
libavutil 55. 10.100 / 55. 10.100
libavcodec 57. 17.100 / 57. 17.100
libavformat 57. 19.100 / 57. 19.100
libavdevice 57. 0.100 / 57. 0.100
libavfilter 6. 20.100 / 6. 20.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, matroska,webm, from 'original.wmv':
Metadata:
encoder : QTmuxingAppLibWebM-0.0.1
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Stream #0:1(eng): Audio: vorbis, 44100 Hz, mono, fltp (default)
Эти команды помогли мне решить большинство проблем со звуком, но теперь они не синхронизированы:
ffmpeg -i original.wmv -r 30000/1001 -pix_fmt yuv420p -vsync 1 -g 60 -vcodec libx264 -refs 1 -bf 0 -subq 3 -acodec libfaac -ac 2 -ab 128k -ar 100 -filter_complex asetnsamples=n=1234:p=0 novo.mp4
ffmpeg -y -i original.wmv -r 30000/1001 -pix_fmt yuv420p -vsync 1 -g 60 -vcodec libx264 -refs 1 -bf 0 -subq 3 -acodec libfaac -ac 2 -ab 128k - 44100 -filter_complex silenceremove=0:5 new.mp4
Мне нужно синхронизировать его или исправить другим способом, но с помощью общей команды для использования в любых других видео, записанных таким образом.