2017-12-07 22 views
1

이미 작동 중 : LAN을 통해 임베디드 비디오 소스 (그냥 장치)에서 비디오를 가져 와서 비디오를 가져 와서 ".h264"파일에 저장할 수 있습니다 (파일마다 "encodedPacket"을 추가 할 때마다 C++). VLC를 사용하여 파일을 재생할 수 있습니다..h264 스트림을 이미지에 저장하는 방법은 무엇입니까? C++

취미 : 이미지 파일을 주기적으로 저장할 수 있습니까 (예 : 5 초에서 1 초) (모든 형식이지만 jpg가 필요합니까)?

파일 정보 :

비디오 형식 : AVC 포맷/정보 : 고급 비디오 코덱 포맷 프로파일 : [email protected] 형식 설정 : 1 참조 프레임 포맷 설정, CABAC : 없음 형식 설정하지 , RefFrames 1 프레임 폭 : 640 개 픽셀 신장 480 픽셀 디스플레이 종횡비 4 : 3 색 공간 : YUV 크로마 서브 샘플링 : 4 : 2 : 0 동성 t 깊이 : 8 비트 스캔 유형 : 프로그레시브

+0

듣고는 응답이 : https://stackoverflow.com/q 유인물/30800772/how-to-grab-video-frames-in-qt –

+0

답변 해 주셔서 감사합니다! "QMediaPlayer를 사용하여이 작업을 수행 할 수 있습니다." QMediaPlayer는 char * packet으로부터 데이터를 얻을 수 있습니까? – devdex

+0

및 여기에이 질문에 대한 답변도 있습니다. https://stackoverflow.com/questions/27749105/play-video-in-qt-from-byte-stream –

답변

0

는 FFmpeg은 당신의 친구입니다 : https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video

내가 좋아하는 뭔가를 시도 할 것입니다 :는 FFmpeg -i input.h264 -vf FPS = 5 밖으로 %의 d.jpg

귀하의 의견은 당신이는 FFmpeg -i TCP 같은 것을 할 수있는 네트워크 스트림 인 경우 : // 여기서 local_hostname : 포트가 여기에

https://trac.ffmpeg.org/wiki/StreamingGuide

+0

좋아요! 그러나 내 프로그램의 스트림을 파일이 아닌 ffmpeg로 어떻게 라우트 할 수 있습니까? – devdex

+0

비디오는 어떻게 전송됩니까? 제발 우리에게 형식을 말해. –

+0

당신의 질문을 이해할 수 없다 : (What is mean?) 비디오 포맷 : AVC 포맷/정보 : 고급 비디오 코덱 포맷 프로파일 : [email protected] 포맷 설정 : 1 Ref 프레임 포맷 설정, CABAC : 포맷 설정 없음, RefFrames : 1 프레임 너비 : 640 픽셀 높이 : 480 픽셀 디스플레이 종횡비 : 4 : 3 색 공간 : YUV 크로마 하위 샘플링 : 4 : 2 : 0 비트 심도 : 8 비트 스캔 유형 : 프로그레시브 – devdex