2014-12-04 62 views
0

我測試了拼接mp4文件在一起,並遇到了一種方法來做到這一點,正在工作,但正在創造巨大的文件大小。avconv - concat .mp4沒有質量損失和巨大的文件大小

我的原始視頻是mp4,我開始嘗試將它們轉換爲mpeg,但發現mpeg不會轉換,因爲我的文件是1fps,mpeg不支持。

[email protected]:~/mp4_test$ avconv -i video1.mp4 video1.mpeg 
avconv version 9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers 
    built on Aug 10 2014 18:16:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video1.mp4': 
    Metadata: 
    major_brand  : f4v 
    minor_version : 0 
    compatible_brands: isommp42m4v 
    creation_time : 2014-12-02 13:00:03 
    Duration: 00:59:56.90, start: 0.000000, bitrate: 120 kb/s 
    Stream #0.0(eng): Video: h264 (Main), yuv420p, 800x600, 120 kb/s, 1 fps, 90k tbn 
    Metadata: 
     creation_time : 2014-12-02 13:00:03 
[mpeg1video @ 0x10c53a0] MPEG1/2 does not support 5/1 fps 
Output #0, mpeg, to 'video1.mpeg': 
    Metadata: 
    major_brand  : f4v 
    minor_version : 0 
    compatible_brands: isommp42m4v 
    creation_time : 2014-12-02 13:00:03 
    Stream #0.0(eng): Video: mpeg1video, yuv420p, 800x600, q=2-31, 200 kb/s, 90k tbn, 5 tbc 
    Metadata: 
     creation_time : 2014-12-02 13:00:03 
Stream mapping: 
    Stream #0:0 -> #0:0 (h264 -> mpeg1video) 
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height 

我讀過一個建議,爲幀率添加-r 23.967,但仍然不起作用。


然後我發現我可以將文件轉換爲.avi併成功連接它們。

轉換爲AVI

avconv -i video1.mp4 -r 23.967 -qscale 1 video1.avi 

avconv -i video2.mp4 -r 23.967 -qscale 1 video2.avi 

那麼Concat的

avconv -i concat:video1.avi\|video2.avi -c copy video.mp4 

不幸的是這個新的文件超過1GB時,原來是約50MB。我已經嘗試調整qscale,但是我失去了太多的質量,仍然無法獲得文件大小。

是否有一個很好的建議,我應該先轉換爲什麼文件類型,然後才能將它們連接起來?我不介意文件大小有點大,但最好不要太大。

感謝

回答

0

如果你不介意改變文件的格式,您可以通過使用了mkvmerge工具把它們變成一個單一的Matroska文件。

字符串將是相當簡單:

mkvmerge -o output.mkv file1.mp4 + file2.mp4