Domanda

qualcuno sa come posso recuperare la dimensione del fotogramma di un video mpeg4 (non h264, cioèMpeg4 Parte 2) dal bitstream video grezzo?Attualmente sto scrivendo un'origine multimediale personalizzata per Windows Media Foundation, devo fornire un tipo di supporto che richieda la dimensione del frame.non funziona senza di essa.qualche idea?Grazie

È stato utile?

Soluzione

Non ti capisco.Stai cercando di conoscere la larghezza e l'altezza del video trasmesso in streaming?Se è così (e immagino che sia la "dimensione" che stai cercando) ecco come:

  1. Analizzare il flusso per questo numero intero 000001B0(hex) è sempre la prima cosa che ricevi in ​​streaming.In caso contrario, consulta l'SDP dello stream (se ne hai uno) e cerca config= campo, ed eccolo lì...solo che ora è una stringa Base16!
  2. Leggi tutti i byte fino ad arrivare al numero intero 000001B6(esadecimale)
  3. Dovresti ottenere qualcosa del genere (esadecimale): 000001B0F5000001B5891300000100000001200086C40FA28 A021E0A2
  4. Questa è l'"intestazione di configurazione del flusso" o frame o qualsiasi altra cosa, il nome esatto è Sequenza oggetti video.Contiene tutte le informazioni di cui un decoder avrebbe bisogno per decodificare il flusso video.
  5. Leggi gli ultimi 4 byte (nel mio esempio sono separati da uno spazio -- A021E0A2)
  6. Ora osserva questi byte come un intero senza segno a 32 bit...
  7. Ottenere larghezza leggere i primi 8 bit e poi moltiplica quello che ottieni per 4
  8. Salta i successivi 7 bit
  9. Ottenere altezza leggi i successivi 9 bit
  10. In pseudo codice:

      WIDTH = readBitsUnsigned(array, 8) * 4;
      readBitsUnsigned(array, 7);
      HEIGHT = readBitsUnsigned(array, 9);
    

Ecco qua...larghezza e altezza.(:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top