Запись аудиоданных в существующий медиафайл с помощью FFMPEG API

#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'