Я хочу
1. Get video packet from stream source
2. Decode it
3. And write that decoded data as video file(avi, mpeg etc)
Я могу получать видео пакеты из файла (как AVPacket) и также может декодировать и сохранять как изображение. (raw) (в руководствах по FFmpeg показано, как это сделать). Но я не могу (не знаю) записать эти видеоданные в файл (другой), который может воспроизводиться медиаплеерами (такими как VLC).
С наилучшими пожеланиями
Ps: Реальные образцы кода будут отличными, если это возможно ...
Теперь я провожу тест с av_interleaved_write , но у меня странная ошибка "немонотонные временные метки" (у меня нет контроля над значениями pts медиа источник)
Дополнительная информация
В FFmpeg мне нужно
Мне нужен читатель и писатель. Я могу читать файл источника мультимедиа (даже кодировать пакеты в соответствии с заданным форматом). Но я не могу записать в файл ... (который может воспроизвести любой игрок)
И некоторый псевдокод
File myFile("MyTestFile.avi");
while ( source ->hasVideoPackets)
{
packet = source->GetNextVideoPacket();
Frame decodedFrame = Decode(packet);
VideoPacket encodedPacket = Encode( decodedFrame);
myFile.WriteFile(encodedPacket);
}
Или просто напишите исходный файл без кодирования-декодирования
File myFile("MyTestFile.avi");
while ( source ->hasVideoPackets)
{
packet = source->GetNextVideoPacket();
myFile.WriteFile(packet);
}
Затем
I can able to open MyTest.avi file with a player.