2016-06-06 3 views
2

소니 캠코더는 MP4 형식으로 비디오를 녹화했습니다. 나는 파이썬 모듈로,opencv는 소니 캠코더에서 MP4 파일을 읽을 수 없습니다.

import cv2 
vid = cv2.VideoCapture('sample.MP4') 

내 OpenCV의 버전은 2.4.8이다하여 파일을 읽고있다.

'sample.MP4'의 코덱은 H.264, Linear PCM입니다.

ffprobe sample.MP4 

반환 :

> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C0004.mp4': Metadata: 
>  major_brand  : XAVC 
>  minor_version : 16785407 
>  compatible_brands: XAVCmp42iso2 
>  creation_time : 2016-06-06 13:41:51 Duration: 00:00:15.02, start: 0.000000, bitrate: 50439 kb/s 
>  Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p(tv, bt709/bt709/iec61966-2-4), 1920x1080 [SAR 1:1 DAR 16:9], 
> 48655 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) 
>  Metadata: 
>  creation_time : 2016-06-06 13:41:51 
>  handler_name : Video Media Handler 
>  encoder   : AVC Coding 
>  Stream #0:1(und): Audio: pcm_s16be (twos/0x736F7774), 48000 Hz, 2 channels, s16, 1536 kb/s (default) 
>  Metadata: 
>  creation_time : 2016-06-06 13:41:51 
>  handler_name : Sound Media Handler 
>  Stream #0:2(und): Data: none (rtmd/0x646D7472), 245 kb/s (default) 
>  Metadata: 
>  creation_time : 2016-06-06 13:41:51 
>  handler_name : Timed Metadata Media Handler 
> Unsupported codec with id 0 for input stream 2 

h.264을위한 코덱이없는 것 같다. 내 FFmpeg의 버전은 3.0입니다.

sample.MP4를 sample_converted.mp4로 변환하려고 시도한 결과,이 명령 행이 작동하지 않았습니다. 명령은 ffmpeg -i sample.mp4 sample_converted.mp4입니다. 그러나, 그것은 비디오 품질을 나쁘게 손상시켰다. 나는 온라인 비디오 변환기를 사용했다 : http://www.online-convert.com/ (좋은 품질의 비디오를 mp4 형식으로 출력하지만 자유로운 사용자는 크기 제한이있다) MP4를 MP4로 변환하려면 아래 터미널과 같은 명령을 사용한다. : handler_names 등 sample.MP4의 및 sample_converted.mp4

ffprobe 'sample_converted.mp4' 

반환 분명히

> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C0001_converted.mp4': 
> Metadata: 
>  major_brand  : isom 
>  minor_version : 512 
>  compatible_brands: isomiso2avc1mp41 
>  encoder   : Lavf57.36.100 Duration: 00:00:02.02, start: 0.000000, bitrate: 16777 kb/s 
>  Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1/0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 16801 kb/s, 59.94 
> fps, 59.94 tbr, 60k tbn, 119.88 tbc (default) 
>  Metadata: 
>  handler_name : VideoHandler 
>  Stream #0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default) 
>  Metadata: 
>  handler_name : SoundHandler 

인코더는 다르다. FFmpeg 또는 OpenCV를 사용하여 비디오 품질을 손상시키지 않으면 서이 원시 비디오를 캠코더에서 읽을 수있는 형식으로 변환 할 수 있습니까?

+1

당신은'ffmpeg -i sample.MP4 -c : v copy sample_converted.mp4'를 시도 했습니까? – incBrain

+0

대단히 감사합니다. @inc – Jundong

+0

은 opencv가 MP4 브랜드 xavc에 문제가 있다고 생각합니다. – incBrain

답변

1

명령 :

avconv -i sample.MP4 -c:v copy sample_converted.mp4 

ffmpeg -i sample.MP4 -c:v copy sample_converted.mp4 

추가 분석을 OpenCV 대한 판독 가능한 MP4 파일 소니 캠코더에서 MP4 동영상 파일을 변환하여 두 작업. 비디오 품질이 손상되지 않습니다.

관련 문제