2013-08-08 37 views
28

Khi tôi cố gắng để chuyển đổi một tập tin webm sang MP4 đầu ra là rất rất choppy và nó xuất hiện như thể nhiều khung hình đã được giảm ffmpegwebm để chuyển đổi mp4 sử dụng ffmpeg

tôi đã sử dụng các lệnh sau để chuyển đổi

ffmpeg -i movie.webm movie.mp4 
ffmpeg -i movie.webm -vcodec libx264 movie.mp4 
ffmpeg -i movie.webm -vcodec libx264 -qscale 0 movie.mp4 

Tất cả đều có cùng sự cố. Khi tôi sử dụng ffprobe nó có vẻ hiển thị các khung hình nhiều hơn hoặc ít hơn đúng cách.

UPDATE:

built on Jun 14 2013 14:31:50 with gcc 4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1) 
    configuration: --prefix=/home/user2/ffmpeg_build --extra-cflags=-I/home/user2/ffmpeg_build/include --extra-ldflags=-L/home/pavan4/ffmpeg_build/lib --bindir=/home/pavan4/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab 
    libavutil  52. 35.101/52. 35.101 
    libavcodec  55. 16.100/55. 16.100 
    libavformat 55. 8.102/55. 8.102 
    libavdevice 55. 2.100/55. 2.100 
    libavfilter  3. 77.101/3. 77.101 
    libswscale  2. 3.100/2. 3.100 
    libswresample 0. 17.102/0. 17.102 
    libpostproc 52. 3.100/52. 3.100 
Hyper fast Audio and Video encoder 
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... 

Use -h to get full help or, even better, run 'man ffmpeg' 

Input #0, matroska,webm, from '1.webm': 
    Duration: 00:00:10.64, start: 0.000000, bitrate: 5024 kb/s 
    Stream #0:0(eng): Video: vp8, yuv420p, 1280x720, SAR 1:1 DAR 16:9, 1k fps, 1k tbr, 1k tbn, 1k tbc (default) 
[libx264 @ 0x1d966a0] using SAR=1/1 
[libx264 @ 0x1d966a0] MB rate (3600000) > level limit (2073600) 
[libx264 @ 0x1d966a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 
[libx264 @ 0x1d966a0] profile High, level 5.2 
[libx264 @ 0x1d966a0] 264 - core 133 r2 a3ac64b - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 
Output #0, mp4, to '1_conv4.mp4': 
    Metadata: 
    encoder   : Lavf55.8.102 
    Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0]/0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 16k tbn, 1k tbc (default) 
Stream mapping: 
Stream #0:0 -> #0:0 (vp8 -> libx264) 
Press [q] to stop, [?] for help 
frame= 168 fps=0.0 q=33.0 size=  62kB time=00:00:00.11 bitrate=4606.0kbits/frame= 293 fps=230 q=33.0 size=  138kB time=00:00:00.23 bitrate=4809.7kbits/ 

video:5620kB audio:0kB subtitle:0 global headers:0kB muxing overhead 2.212461% 
[libx264 @ 0x1d966a0] frame I:46 Avg QP:18.50 size: 39849 
[libx264 @ 0x1d966a0] frame P:2940 Avg QP:18.27 size: 1222 
[libx264 @ 0x1d966a0] frame B:7651 Avg QP:17.68 size: 43 
[libx264 @ 0x1d966a0] consecutive B-frames: 4.0% 0.2% 0.3% 95.5% 
[libx264 @ 0x1d966a0] mb I I16..4: 19.9% 63.2% 16.9% 
[libx264 @ 0x1d966a0] mb P I16..4: 0.2% 0.5% 0.1% P16..4: 3.9% 1.1% 0.6% 0.0% 0.0% skip:93.6% 
[libx264 @ 0x1d966a0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.2% 0.0% 0.0% direct: 0.0% skip:99.8% L0:25.1% L1:74.9% BI: 0.0% 
[libx264 @ 0x1d966a0] 8x8 transform intra:63.6% inter:75.9% 
[libx264 @ 0x1d966a0] coded y,uvDC,uvAC intra: 61.5% 53.4% 24.4% inter: 0.5% 0.5% 0.0% 
[libx264 @ 0x1d966a0] i16 v,h,dc,p: 52% 19% 19% 11% 
[libx264 @ 0x1d966a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 17% 13% 4% 6% 9% 5% 8% 6% 
[libx264 @ 0x1d966a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 18% 14% 5% 8% 10% 6% 6% 3% 
[libx264 @ 0x1d966a0] i8c dc,h,v,p: 55% 17% 24% 4% 
[libx264 @ 0x1d966a0] Weighted P-Frames: Y:0.0% UV:0.0% 
[libx264 @ 0x1d966a0] ref P L0: 82.5% 13.2% 4.0% 0.3% 
[libx264 @ 0x1d966a0] ref B L0: 60.2% 39.2% 0.6% 
[libx264 @ 0x1d966a0] ref B L1: 98.5% 1.5% 
[libx264 @ 0x1d966a0] kb/s:4327.77 
+0

một nhận xét chung về "làm thế nào để hỏi", xin vui lòng thêm ít nhất một sản lượng dòng lệnh ffmpeg để xem phiên bản ffmpeg và tất cả các thông tin còn lại về luồng tập tin đầu vào của bạn đến đầu ra của bạn ánh xạ luồng tệp. – alexbuisson

+0

@alexbuisson Tôi cập nhật bài đăng :) Tôi nghĩ rằng tôi đã làm một cái gì đó tầm thường nên không thêm đầu ra. –

+0

nó không nên quá tầm thường, tôi chỉ chạy cùng một loại chuyển đổi với ffmpeg 'được xây dựng vào ngày 4 tháng 6 năm 2013 01:41:53 với gcc 4.7.3 (GCC)' mà không có vấn đề, mp4 trên đầu ra có chất lượng chính xác . Không biết làm thế nào để giúp đỡ: ( – alexbuisson

Trả lời

42

Như báo cáo tập tin đầu vào của bạn một giá trị tỷ lệ khung hình lạ 1k fps đến từ các tbs và TBR giá trị (xem here for their definition)

bộ mã hóa tạo ra một kết quả khác nhau, 16k tbn, 1k tbc (default)

Vì vậy, bằng cách gọi:

ffmpeg -fflags +genpts -i 1.webm -r 24 1.mp4 

Bạn cấu hình ffmpeg để tạo ra điểm mới (a/ka Presentation timestamp) cho mỗi frame và bạn thiết lập các mục tiêu khung lãi suất cho 24.

Vì vậy, đầu ra của bạn thông tin tập tin mp4 (ffmpeg -i ....) thay đổi từ

Stream #0:0(eng): Video: h264 (High) (avc1/0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 4327 kb/s, 1000.09 fps, 1k tbr, 16k tbn, 2k tbc 

để

Stream #0:0(eng): Video: h264 (High) (avc1/0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1670 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc 
+0

Tôi chỉ nhận thấy điều này cho mp4 ffmpeg tự động thay đổi tốc độ bit thành 2M trong khi nguồn là Tôi có thể đặt tự động tốc độ bit được chọn từ nguồn không? –

+0

không có ý tưởng, đó là câu hỏi thường xuyên về SOF và SuperUser, nhưng hỏi lại ai đó có thể có giải pháp, tôi sẽ đặt mọi dòng trong tập lệnh, đầu tiên chạy một ffmp ví dụ -i trên đầu vào, bắt & phân tích cú pháp đầu ra dòng lệnh để tìm bitrate và sau khi sử dụng lại giá trị đó, hãy đặt giá trị '-b: v' thành mã chuyển ... – alexbuisson

+0

tệp mp4 này không thể phát trên trình duyệt, tại sao? –

Các vấn đề liên quan