索尼攝像機以MP4格式錄製視頻。我正在通過讀取文件opencv無法從索尼攝像機讀取MP4文件
import cv2
vid = cv2.VideoCapture('sample.MP4')
我的OpenCV版本是2.4.8,作爲Python模塊。
'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
。
我試過avconv -i sample.MP4 -c:a copy -c:v copy sample_converted.mp4
將sample.MP4轉換爲sample_converted.mp4,這個命令行不起作用。命令ffmpeg -i sample.mp4 sample_converted.mp4
工作;然而,它影響了視頻質量糟糕。我使用了一個在線視頻轉換器:http://www.online-convert.com/(它輸出mp4格式的高質量視頻,但它的大小限制爲免費用戶) 將MP4轉換爲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
顯然,編碼器,handler_names等sample.MP4的和sample_converted.mp4是不同的。 使用FFmpeg或OpenCV將攝像機的原始視頻轉換爲可讀格式而不影響視頻質量的任何想法?
你嘗試過'ffmpeg -i sample.MP4 -c:v copy sample_converted.mp4'嗎? – incBrain
非常感謝,@inc – Jundong
看起來像opencv與MP4品牌xavc有一些問題。 – incBrain