Görüntüleri H.264 akışına kodlamak için FFMpeg'in api'sini kullanıyorum, kod bu encode code gibidir. avcodec_encode_video2
işlevini çağırdığımda, bir AVPacket veri aldım, sonra dosyayı dosyaya kaydettim. Test için birkaç dosya almak için birkaç resim kullanırım. 00 00 00 01
veya 00 00 01
kod numarasına dayanarak, 1. ve 2. dosyaların verilerinin birkaç H.264 NAL Uints içerdiğini buldum. Ama üçüncü dosyadan başla, başlangıç kodunu bulamıyorum. İzlenen görüntü gibi. AVPacket ile FFMpeg ve H.264 NAL Uint arasındaki ilişki nedir?
Kafam karıştı. FFMpeg'in kodundaki temelde, bir AVPacket'in verisinin en az bir NAL Uint içermesi gerektiğini düşünüyorum, ancak sonuç beklenmedik bir durumdur. Bu, bir NAL Uint'in iki AVPackets'in verisine bölünebileceği anlamına mı geliyor? AVPacket ve H.264 NAL Uint arasındaki ilişki nedir?
Kodunuzu gösterebilir misiniz? Kodlama çağrınızın aslında bir paket (got_packet_ptr == 0) veya benzeri bir şey döndürmediğinden şüpheleniyorum. –
[FFmpeg doxygen] 'dan (http://ffmpeg.org/doxygen/trunk/group__lavc__encoding.html#gaa2dc9e9ea2567ebb2801a08153c7306b) avcodec_encode_video2' üzerinde: * Ham video girişini çerçeveden alır ve eğer varsa, bir sonraki çıktı paketini yazar. . Enkoderlerin ihtiyaç duyulduğunda dahili çerçeveleri geciktirip yeniden sıralayabilmeleri nedeniyle çıktı paketi ** en güncel kareye ** ilişkin verileri içermez. * Muhtemelen bu şekilde bölünmüştür. Verilerini birleştirip, şikayet edip etmediğini görmek için onu kod çözücüye aktarabiliyor musunuz? – incBrain
@ RonaldS.Bultje Programımı debug ettim, 'got_output' aslında her seferinde doğrudur. – Ello