WAV больше 4 ГБ: как использовать RF64 и проверить конец записи
Почему длинный PCM-файл может читаться не полностью, как выбрать rf64 auto в FFmpeg и проверить совместимость результата.
Разделяйте размер аудио и поддержку контейнера
Длинный несжатый PCM-звук быстро занимает много места. В обычном RIFF/WAVE поля размера ограничены примерно 4 ГиБ. RF64 расширяет представление размера, но не все программы поддерживают его одинаково. Поэтому воспроизведение начала большого WAV не доказывает, что доступна вся запись.
Один гигабайт в десятичном счёте равен миллиарду байт, а один гибибайт — 1 073 741 824 байтам. Для оценки границы полезно помнить разницу между ГБ и ГиБ. Накладные данные контейнера тоже занимают место, поэтому расчёт PCM — оценка, а не обещание точного размера готового файла.
RF64 не сжимает звук и не восстанавливает отсутствующие фрагменты. Если рекордер действительно остановился раньше окончания встречи, смена контейнера не добавит продолжение. Сначала установите, проблема в фактической записи, чтении файла или создании рабочей копии.
На 3 октября 2026 года описание режимов ниже сверено с официальной документацией FFmpeg. Эталон EBU Tech 3306 перенаправляет к действующей рекомендации ITU; не называйте старую публикацию новым стандартом. Практическая проба здесь выполнена на маленьком синтетическом файле, а не на реальной многочасовой встрече.
Оцените размер перед экспортом
Для несжатого PCM приблизительное число байт равно частоте дискретизации × количеству каналов × байтам на отсчёт × длительности в секундах. Для 24 бит используйте 3 байта, для 16 бит — 2. Эта формула не относится к MP3 или другому сжатому звуку.
Например, шесть часов стерео PCM 48 кГц и 24 бита дают 48 000 × 2 × 3 × 21 600 = 6 220 800 000 байт без накладных данных. Это примерно 5.79 ГиБ, то есть уже больше обычной границы RIFF/WAVE. У многоканальной записи объём растёт ещё быстрее.
Сверьте исходный кодек, каналы, частоту и разрядность до выбора команды. Не превращайте стерео в моно или 24 бита в 16 только ради обхода размера, если такие изменения не соответствуют задаче. Контейнер, сжатие и параметры звука — отдельные решения.
Оставьте место для исходника и результата одновременно. Проверяйте свободное пространство именно там, куда выводится файл. Успешная обработка первых минут не означает, что диска хватит до конца многократной копии.
Создайте отдельную копию с явным режимом RF64
В FFmpeg для WAV доступны режимы rf64 auto, always и never. Auto начинает обычный RIFF-файл и переключается в RF64 при необходимости. Always создаёт RF64 независимо от размера, что удобно для короткой проверки совместимости. Never сохраняет обычный RIFF и не подходит для выхода, который превышает его ограничения.
Для исходного WAV с поддерживаемым PCM можно попробовать копирование аудиопотока без перекодирования:
ffmpeg -n -i long_pcm.wav -map 0:a:0 -c:a copy -rf64 auto long_checked.wav
Здесь выбирается первая аудиодорожка, -c:a copy копирует её данные, а -n не позволяет молча перезаписать существующий результат. Замените имена на свои и проверьте, что выбрана нужная дорожка. Команда не обещает перенос всех служебных данных исходного контейнера.
Это не универсальная команда для любого сжатого входа. Если поток не подходит для WAV или нужны новые параметры PCM, требуется осознанное декодирование и выбор кодека. Подготовка формата для расшифровки помогает отдельно проверить такие изменения. Переименование расширения не создаёт RF64.
Проверьте маленькую пробу и полный результат
Сначала создайте короткую копию с -rf64 always и откройте её в целевом приложении. Это проверит способность приложения прочитать RF64 до затрат на большой экспорт. Но успешная двухсекундная проба не подтверждает обработку многочасового файла.
В учебной проверке на FFmpeg 6.1.1 синтетический двухсекундный PCM-тон был скопирован с auto и always. Первый файл начинался сигнатурой RIFF, второй — RF64; оба показывали длительность 2.000 секунды, а хеши декодированных PCM-данных совпали. Файл больше 4 ГиБ в этой пробе не создавался.
После большого экспорта сравните ожидаемую и полученную длительность. Выполните проверку чтения аудио через FFmpeg для всего файла, затем послушайте начало, середину и самый конец. Особенно важен последний завершённый ответ: формально длинный файл может содержать тишину вместо нужного продолжения.
Повторите проверку в приложении, где запись будут монтировать или слушать. Возможность чтения в FFmpeg и возможность чтения в другом плеере — разные факты. Если короткая RF64-проба не поддерживается, выберите согласованный рабочий формат или части записи с картой исходных времён.
Подготовьте запись к текстовой обработке
Сохраните большой исходник и проверенную рабочую копию отдельно. Рядом запишите формат контейнера, кодек, длительность и результат проверки конечного приложения. Если файл разделён, сохраните порядок частей и время начала каждой в полном разговоре.
Перед загрузкой для получения текста аудио в Транскрибаторе сравните рабочий формат, размер и длительность с условиями, которые показывает сервис. Поддержка RF64 сервисом в этой статье не заявляется: при необходимости подготовьте допустимую копию и проверьте её звук.
Если конец текста отсутствует, вернитесь к аудио: доступен ли последний фрагмент в рабочей копии и завершилась ли обработка. Не запускайте повторное распознавание вслепую, пока не установлено фактическое состояние первого результата.
Завершайте подготовку после трёх проверок: файл содержит ожидаемое аудио целиком, целевое приложение его читает и рабочая копия пригодна для следующего шага. Один размер или одно расширение не заменяют эти подтверждения.
Маленькая проба проверяет формат, большая — полноту
Учебный расчёт для шестичасовой записи показывает объём PCM без заголовков. Это вымышленная длительность, а не рассказ о клиентском проекте. Отдельная фактическая техническая проба использовала только синтетический двухсекундный тон.
| Стерео PCM 48 кГц / 24 бита | Данные без заголовков | Вывод для планирования |
|---|---|---|
| 30 минут | 518 400 000 байт ≈ 0.48 ГиБ | Учитывать накладные данные и поддержку |
| 3 часа | 3 110 400 000 байт ≈ 2.90 ГиБ | Ещё не гарантия совместимости файла |
| 6 часов | 6 220 800 000 байт ≈ 5.79 ГиБ | Обычного RIFF/WAVE недостаточно |
| 2 секунды с rf64 always | Маленький учебный RF64 | Тест поддержки, не тест размера >4ГиБ |
Результаты этих проверок нельзя объединить в утверждение «шестичасовой файл уже проверен». Короткий тест подтверждает создание RF64 и неизменность PCM в выбранной команде; реальную длинную запись нужно проверять целиком и в рабочем приложении.
Карточка приёмки большого аудиофайла
Исходный файл / резервная копия: Контейнер / кодек: Частота / каналы / разрядность: Ожидаемая длительность: Расчёт PCM и свободное место: Версия FFmpeg: Режим rf64 / команда: Короткий RF64 открыт в приложении: Финальная длительность проверена: Полное чтение без ошибок: Последний ответ прослушан: Метаданные отдельно сверены: Рабочая копия для сервиса: Части и исходные времена при разделении:
Частые вопросы
RF64 уменьшает размер?
Он расширяет представление размера контейнера. Сжатие звука выполняют другими средствами и проверяют отдельно.
Можно просто переименовать WAV?
Расширение не меняет структуру контейнера. Создайте корректную копию поддерживаемым инструментом.
Зачем режим always на маленьком файле?
Так можно проверить поддержку RF64 в выбранном приложении. Полноту большого файла эта проба не подтверждает.
Нужно ли использовать auto для любого входа?
Параметр относится к WAV-выходу. Сам кодек и возможность копирования аудиопотока нужно проверить отдельно.
Начало играет — значит всё хорошо?
Проверьте длительность, чтение всего файла и конец записи. Начало не доказывает доступность продолжения.