스트림에서 가져온 비디오 프레임을 기존 mp4 파일에 추가해야합니다. 청크 테이블을 업데이트하는 데 mdat 및 stco 원자를 사용해야 함을 발견했습니다. 새 프레임/청크를 추가 할 수 있습니까? 나는이 애플 리케이션에서 이것을해야합니다.재생 중에 mp4에 비디오 프레임 추가
0
A
답변
1
이러한 추가가 가능하지만 특히 한 번에 하나의 프레임을 추가하려는 경우에는 실용적이지 않을 수 있습니다.
MP4는 생성 된 후에 수정하기가 매우 어렵다. 이는 "moov"상자의 구조 데이터에 "mdat"상자의 중요한 미디어 데이터에 대한 파일 오프셋이 포함되어 있기 때문입니다. moov 상자가 mdat 상자 앞에 위치하면 (점진적 다운로드 허용), moov 상자에 추가 된 모든 데이터 (추가 된 비디오의 새로운 키 프레임에 대한 참조)가 mdat 상자를 더 멀리 밀어냅니다. 파일을 다시 작성해야 할뿐만 아니라 그에 따라 모든 파일 오프셋을 업데이트해야합니다. (아마 moov 상자 크기를 일정하게 유지하는 몇 가지 영리한 트릭이있을 것입니다 ...) mdat 상자가 처음으로 위치하면 moov 상자를 메모리에 복사하고 새 비디오를 다음과 같이 추가해야하기 때문에 작업은 여전히 어색 할 것입니다. mdat의 끝 부분에 따라 moov 필드를 업데이트하고 새로운 moov 상자를 추가하십시오.
새 비디오 프레임을 모두 수집 할 수 있고 다시 녹음 작업을 수행하는 동안 녹음이 끝나면 추가 할 수 있습니다. Fragmented MP4 ("moof"상자 사용)를 살펴볼 수도 있지만, 그러한 파일을 읽는 것에 대한 지원이 얼마나 널리 퍼져 있는지 확신 할 수 없습니다.
관련 문제
- 1. 아이폰 프레임 비디오 재생
- 2. 비디오 재생 목록 재생
- 3. 로컬 디스크에서 android로 비디오 재생
- 4. 프레임 저장 중에 비디오 프로그램이 멈추는 문제
- 5. videojs를 사용하여 재생 프레임 워크에서 비디오 스트리밍
- 6. 초점을 맞춘 비디오 재생
- 7. html5 비디오 재생 버튼에 이벤트 추가
- 8. iOS 프레임 별 프레임 비디오 재생 앞으로/뒤로
- 9. 가상 URL에서 비디오 파일 재생
- 10. 화면의 일부분으로 비디오 재생
- 11. iOS 비디오 재생
- 12. AVPlayer 백그라운드에서 비디오 재생
- 13. AVPlayer를 사용하여 비디오 재생
- 14. iPhone 비디오 컨트롤 및 듀얼 비디오 재생
- 15. 통화 중에 알람 재생
- 16. JMC/JavaFX - 비디오 재생
- 17. 재생 중 다른 스레드에서 키 프레임 추가
- 18. Netty 프레임 워크로 재생
- 19. 비디오 재생 중 ScrollView 오버레이
- 20. 동영상 재생 중에 배경 음악 재생
- 21. iphone에서 비디오 위에 프레임 추가 - objective c
- 22. 프레임 워크 재생 - 저장()
- 23. iOS에서 30fps로 200fps 비디오 재생
- 24. iPad에서 Dailymotion 비디오 재생
- 25. 브라우저에서 비디오 재생
- 26. phonegap에서 youtube 비디오 재생
- 27. Emgucv에서 비디오 재생
- 28. Facebook 비디오 자동 재생
- 29. QTCreator GUI에서 비디오 재생
- 30. opencv library 비디오 재생