Chcę zdekodować strumień WMA do 16-bitowego PCM. Teraz mam pytanie dotyczące FFMpeg - jaki jest format wyjściowy…
len = avcodec_decode_audio2 (c, (int16_t *) outbuf, & outbuf_used, inbuf_ptr, size);
czy jest to właściwa funkcja do tego zadania?
Dziękuję Ci
Odpowiedzi:
2 dla odpowiedzi № 1Uwaga: spróbuj zadać to pytanie na liście użytkowników ffmpeg. Na pewno znajdziesz tam guru ffmpeg.
Używam ffmpeg do kodowania / dekodowania wideo. Do dekodowania, „avcodec_decode_ *” są właściwymi rzeczami do ... dekodowania. Otrzymujesz ... 16 bitów PCM.
Mam na myśli to, że dekodowałem strumień multimedialnymoże być trudne, a ffmpeg to całkiem niski poziom lib. Trudno jest być bardziej precyzyjnym, podając tylko linię kodu, którą podajesz (przynajmniej powinieneś być bardziej precyzyjny w kwestii swoich parametrów).
Na co powinieneś uważać, to kiedyczytając strumień multimediów, najpierw musisz demultipleksować swój strumień (czasem nawet jeśli w twoim kontenerze jest tylko jeden strumień), a następnie zdekodować go odpowiednim kodekiem. Jeśli poprawnie zdemodowałeś swój strumień, poprawnie zainicjowałeś swój kodek / kontekst kodeka, możesz wywołać avcodec_decode i zadziała :)
Gdy wspominasz o c ++ w swoich tagach, możesz wypróbować owijanie c ++ dla ffmpeg: FOBS Użycie jest znacznie prostsze, ale oczywiście tracisz precyzyjną kontrolę ...
Mam nadzieję, że to pomoże.