나는 안드로이드에 비디오 플레이어를 쓰고 있습니다. 지금까지 av_read_frame 및 avcodec_decode_video2를 사용하여 프레임을 캡처하고 SDL2.0으로 업데이트 할 수있었습니다. 나는 술집 tutorial02.c http://dranger.com/ffmpeg/을 따라 갔다.ffmpeg는 Android에서 비디오 만 표시합니다.
도우 코드입니다 : 내가 비디오를 표시하기 만하면 동안
while (1)
{
1. Read packet
2. check if video frame; if not Go to Step 3.
2.1 if video frame, then update with SDL_UpdateYUVTexture,
3. Handle SDL Event
4. Clear the Renderer.
5. Present Renderer.
}
내가 궁금해 내가 비디오의 동기화 알아서해야합니까, DTS/계산 PTS?
이 시나리오는 삼성에서는 잘 작동하지만 다른 휴대 전화에서는 잘 작동하지 않습니다.
귀하의 조언은 무엇입니까?
조지, 답장을 보내 주셔서 감사합니다. 다른 프로세스에 어떻게 의존합니까? 프레임을 얻지 못하면 프레임을 표시 할 수 없으므로 우리가 올바르게 될 때마다 달라지는 이유는 무엇입니까? – Whoami
프레임이 표시되지 않으면 표시 할 것이 없으므로 프레임을 표시하지 않습니다. 그런 다음이 프레임을 표시 할시기를 알게되는 PTS를 사용하십시오. –
감사합니다 조지, 그게 내 질문입니다. 가능한 한 빨리 프레임을 얻을 때, PTS를 고려해야하는 이유는 이미 프레임을 가지고 있기 때문에 PTS를 계산한다고해도 나중에 미래의 시간이되어야한다고 가정 해 봅시다. 그게 바로 대기 시간을 늘리는거야? 사려 깊은 조언!!! – Whoami