#c #encoding #ffmpeg
#c #кодирование #ffmpeg
Вопрос:
Моя задача — записать полученные аудиоданные в медиафайл. У меня с этим нет проблем, все работает нормально. Но при закрытии аудиофайла я больше не смогу повторно открыть его и записать аудиоданные в конец аудиофайла. Как мне решить эту проблему? И вообще, возможно ли записать новые данные в конец существующего медиафайла?
Это фрагмент кода, в котором я записываю трейлер и закрываю медиафайл:
// Writing the stream trailer to an output
// media file and free the file private data.
av_write_trailer(p_oFrmCtx);
avformat_close_input(amp;p_oFrmCtx);
Ответ №1:
Насколько я знаю, открытие существующего аудиофайла и запись в него невозможны. Что вы можете сделать, так это записать входящие данные в новый файл и объединить его с предыдущим (тем, в конце которого вы хотели записать данные). Для достижения этой цели вы можете использовать приведенную ниже команду.
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3
Если у вас есть список файлов, которые нужно объединить вместе, выполните следующую команду
$ ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp3
Примечание список должен иметь следующий формат
$ cat filelist.txt
file '/audio/001.mp3'
file '/audio/002.mp3'
file '/audio/003.mp3'
file '/audio/004.mp3'