Я не думаю, что есть общее правило для этого. Это может быть как V0 A0 V1 A1 V2 A2 или V0 V1 A01 V2 V3 A23. Именно это должно зависеть от сжатия и качества видео и аудио. Единственное действительное правило состоит в том, что и видеопоток кадров (V0 V1 и т. Д.) И соответствующий аудиопоток блоков (A0, A1 и т. Д.) Должны быть целыми числами.
Как чередуется MPEG?
Мне нужно знать, через сколько кадров видео начинается аудио часть для файла MPEG. Так, например, сначала есть 5 кадров видео, а затем 10 аудиосэмплов. Это будет повторяться для всего файла.
Дополнительно: есть ли способ установить эту информацию в ffmpeg?
РЕДАКТИРОВАТЬ: больше информации
У меня есть видеопоток в формате RGBA. Эти кадры записываются в кодировщик.
У меня также есть аудиопоток в формате s16le, который я хочу передать кодеру.
Если я использую видеопоток в формате RGBA и добавляю в него обычный файл .wav в качестве аудио, все работает нормально. Однако мне нужно добавить свой собственный аудиопоток. Когда я пытаюсь сделать это, я не получаю аудио, и видео не работает. Он скользит справа налево и сверху вниз. Часть выпадающего фрейма визуализируется на другой стороне (например, фрейм находится на 20 пикселей вправо, выпадающий фрагмент на 20 пикселей отображается на левой стороне).
Я думаю, что мне нужно найти, в каком порядке я должен записать свой аудиопоток в кодировщик. Эта часть команды console управляет моим аудио:
-f s16le -ac 1 -i -
Когда я попробовал это с обычным WAV-файлом, я просто написал
-i file_name.wav
Я надеюсь, что это делает это немного яснее.
ДАЛЬНЕЙШЕЕ РЕДАКТИРОВАНИЕ:
В настоящее время я записываю 18 кадров в кодировщик, и после этого я записываю 18 кадров аудиосэмплов в кодировщик. Это повторяется. Если я перейду на более низкую частоту, на видео появятся зеленые вспышки
FFMPEG COMMAND:
ffmpeg -r 24 -pix_fmt rgba -s 1280x720 -f rawvideo -y -i - -f s16le -ac 1 -i - -vf vflip -vcodec mpeg1video -qscale 4 -bufsize 500KB -maxrate 5000KB OUTPUT_FILE
2 ответа на вопрос
Вы записываете аудио и видео данные в один и тот же поток ввода. FFMPEG необходимо разделить два потока, чтобы он мог правильно их мультиплексировать. Я хотел бы изучить использование именованных каналов для передачи двух отдельных потоков в FFMPEG. Что-то вроде этого:
ffmpeg -r 24 -pix_fmt rgba -s 1280x720 -f rawvideo -y -i \\.\pipe\videopipe -f s16le -ac 1 -i \\.\pipe\audiopipe -vf vflip -vcodec mpeg1video -qscale 4 -bufsize 500KB -maxrate 5000KB OUTPUT_FILE
Похожие вопросы
-
6
Как я могу удалить шум из аудиозаписи?
-
3
Windows Media Center (Vista): дополнение или программное обеспечение для обрезки телевизионных запис...
-
1
Как построить представление в winamp, где исключен каждый исполнитель, у которого есть только 1 песн...
-
-
3
Обработка видео с картами ATI
-
1
VirtualDub для Linux
-
2
Какое использование диска используют видео в формате RAW?
-
1
Приложения Java в браузере вспыхивают / рвутся при прокрутке - почему это так?
-
3
Воспроизведение видео рипов с помощью Windows Media Center
-
6
Автоматическое отключение Windows при выключении
-
2
Стоит ли использовать S / PDIF?