co chcęFFmpeg Jak napisać wideo do pliku
1. Get video packet from stream source
2. Decode it
3. And write that decoded data as video file(avi, mpeg etc)
mogę w stanie uzyskać pakietów wideo z pliku (jako AVPacket), a także może dekodować i zapisać jako obraz. (Raw) (Samouczki FFmpeg pokazują, jak to zrobić). Ale nie mogę (nie wiem) napisać, że dane wideo do pliku (inne), które mogą być odtwarzane przez odtwarzacze multimedialne (takie jak VLC).
Najlepsze życzenia
Ps: Próbki prawdziwy kod będzie wielki, jeśli to możliwe ...
Teraz robię próbę z av_interleaved_write ale mam dziwny błąd „Znaczniki czasu non monotone” (mam żadnej kontroli ponad pts wartości źródła mediów)
kilka dodatkowych informacji
w FFmpeg muszę
- Odczytywanie pakietów multimedialnych ze źródła mediów (może to być prawdziwy plik (.avi, mov) lub nawet serwer rtsp).
- Następnie napisać te pakiety multimedialne do rzeczywistego pliku (fizycznej .avi, .mov etc)
muszę czytnika i pisarz. Mogę odczytać plik źródłowy mediów (nawet kodować pakiety zgodnie z podanym formatem). Ale nie mogę zapisać do pliku ... (który może grać każdy gracz)
A niektóre Pseudokod
File myFile("MyTestFile.avi");
while (source ->hasVideoPackets)
{
packet = source->GetNextVideoPacket();
Frame decodedFrame = Decode(packet);
VideoPacket encodedPacket = Encode(decodedFrame);
myFile.WriteFile(encodedPacket);
}
lub po prostu zapisać plik oryginalny bez kodowania dekodowania
File myFile("MyTestFile.avi");
while (source ->hasVideoPackets)
{
packet = source->GetNextVideoPacket();
myFile.WriteFile(packet);
}
Następnie
I can able to open MyTest.avi file with a player.
Nagroda Bounty dla osoby, która podaje link do dobrego przykładu, który ją realizuje. za pomocą av_interleaved_write_frame lub av_write_frame –
sprawdź ten link, który demonstruje zapis wideo pliku przy użyciu bibliotek FFMPEG: https://stackoverflow.com/a/43464269/6180077 –