2015-06-25 14 views
5

Tôi đang cố chuyển đổi video mp4 có kích thước thường là 960x720 thành video sqdure 480: 480 nhưng thường xuất hiện, lệnh làLệnh FFMPEG để cắt và chuyển video xuất hiện thu nhỏ chất lượng kém

"-y -i %s -vf crop=480:480,transpose=%d -threads 5 -metadata:s:v rotate=0 -c:v libx264 -crf 27 -preset ultrafast -c:a copy -bsf:a aac_adtstoasc %s"; 

Tôi có thiếu gì đó không, trước tiên tôi có cần giảm quy mô hay gì đó không?

** CHỈNH SỬA thêm đầu ra bàn điều khiển đầy đủ. Lệnh ffmpeg được cập nhật, nhưng mục tiêu vẫn như nhau, có một đoạn video tùy ý và cắt theo hình vuông nó

07-14 22:30:32.813: D/ffmpeg(30354): -y -i /data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc.mp4 -vf scale=iw*sar:ih,transpose=1 -threads 5 -metadata:s:v rotate=0 -c:v libx264 -crf 27 -preset ultrafast -c:a copy -bsf:a aac_adtstoasc -aspect 1:1 /data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts 
07-14 22:30:32.903: D/ffmpeg(30354): new time reamining 9283 
07-14 22:30:32.913: D/FFmpeg(30354): Running publishing updates method 
07-14 22:30:35.963: D/ffmpeg(30354): WARNING: linker: /data/data/com.myapp.app/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix. 
07-14 22:30:35.963: D/ffmpeg(30354): ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers 
07-14 22:30:35.963: D/ffmpeg(30354): built on Jun 3 2015 21:56:01 with gcc 4.8 (GCC) 
07-14 22:30:35.963: D/ffmpeg(30354): configuration: --target-os=linux --cross-prefix=/Users/Brian1/development/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/Users/Brian1/development/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-small --enable-libx264 --enable-pthreads --disable-muxers --enable-muxer=mpegts --enable-muxer=mp4 --disable-demuxers --enable-demuxer=mpegts --enable-demuxer=mov --enable-demuxer=mpeg --enable-demuxer=mp4 --disable-debug --disable-decoders --enable-decoder=h264 --enable-decoder=aac --disable-devices --disable-encoders --enable-encoder=libx264 --disable-network --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/Users/Brian1/development/ffmpeg-android/ffmpeg-pkg-config --prefix=/Users/Brian1/development/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/Users/Brian1/development/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/Users/Brian1/development/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs=-lm --extra-cxxflags= 
07-14 22:30:35.963: D/ffmpeg(30354): libavutil  54. 7.100/54. 7.100 
07-14 22:30:35.963: D/ffmpeg(30354): libavcodec  56. 1.100/56. 1.100 
07-14 22:30:35.963: D/ffmpeg(30354): libavformat 56. 4.101/56. 4.101 
07-14 22:30:35.963: D/ffmpeg(30354): libavdevice 56. 0.100/56. 0.100 
07-14 22:30:35.963: D/ffmpeg(30354): libavfilter  5. 1.100/5. 1.100 
07-14 22:30:35.963: D/ffmpeg(30354): libswscale  3. 0.100/3. 0.100 
07-14 22:30:35.963: D/ffmpeg(30354): libswresample 1. 1.100/1. 1.100 
07-14 22:30:35.963: D/ffmpeg(30354): libpostproc 53. 0.100/53. 0.100 
07-14 22:30:35.963: D/ffmpeg(30354): Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc.mp4': 
07-14 22:30:35.963: D/ffmpeg(30354): Metadata: 
07-14 22:30:35.963: D/ffmpeg(30354):  major_brand  : mp42 
07-14 22:30:35.963: D/ffmpeg(30354):  minor_version : 0 
07-14 22:30:35.963: D/ffmpeg(30354):  compatible_brands: isommp42 
07-14 22:30:35.963: D/ffmpeg(30354):  creation_time : 2015-07-15 05:30:32 
07-14 22:30:35.963: D/ffmpeg(30354): Duration: 00:00:02.75, start: 0.000000, bitrate: 9315 kb/s 
07-14 22:30:35.963: D/ffmpeg(30354):  Stream #0:0(eng): Video: h264 (avc1/0x31637661), yuv420p, 960x720, 10062 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default) 
07-14 22:30:35.963: D/ffmpeg(30354):  Metadata: 
07-14 22:30:35.963: D/ffmpeg(30354):  rotate   : 90 
07-14 22:30:35.963: D/ffmpeg(30354):  creation_time : 2015-07-15 05:30:32 
07-14 22:30:35.963: D/ffmpeg(30354):  handler_name : VideoHandle 
07-14 22:30:35.963: D/ffmpeg(30354):  Side data: 
07-14 22:30:35.963: D/ffmpeg(30354):  displaymatrix: rotation of -90.00 degrees 
07-14 22:30:35.963: D/ffmpeg(30354):  Stream #0:1(eng): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 151 kb/s (default) 
07-14 22:30:35.963: D/ffmpeg(30354):  Metadata: 
07-14 22:30:35.963: D/ffmpeg(30354):  creation_time : 2015-07-15 05:30:32 
07-14 22:30:35.963: D/ffmpeg(30354):  handler_name : SoundHandle 
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] using SAR=4/3 
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] using cpu capabilities: none! 
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] profile Constrained Baseline, level 3.1 
07-14 22:30:35.963: D/ffmpeg(30354): [adts @ 0xb685b000] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead. 
07-14 22:30:35.963: D/ffmpeg(30354): Output #0, mpegts, to '/data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts': 
07-14 22:30:35.963: D/ffmpeg(30354): Metadata: 
07-14 22:30:35.963: D/ffmpeg(30354):  major_brand  : mp42 
07-14 22:30:35.963: D/ffmpeg(30354):  minor_version : 0 
07-14 22:30:35.963: D/ffmpeg(30354):  compatible_brands: isommp42 
07-14 22:30:35.963: D/ffmpeg(30354):  encoder   : Lavf56.4.101 
07-14 22:30:35.963: D/ffmpeg(30354):  Stream #0:0(eng): Video: h264 (libx264), yuv420p, 720x960 [SAR 4:3 DAR 1:1], q=-1--1, 29.97 fps, 90k tbn, 29.97 tbc (default) 
07-14 22:30:35.963: D/ffmpeg(30354):  Metadata: 
07-14 22:30:35.963: D/ffmpeg(30354):  handler_name : VideoHandle 
07-14 22:30:35.963: D/ffmpeg(30354):  creation_time : 2015-07-15 05:30:32 
07-14 22:30:35.963: D/ffmpeg(30354):  rotate   : 0 
07-14 22:30:35.963: D/ffmpeg(30354):  encoder   : Lavc56.1.100 libx264 
07-14 22:30:35.963: D/ffmpeg(30354):  Stream #0:1(eng): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, 151 kb/s (default) 
07-14 22:30:35.963: D/ffmpeg(30354):  Metadata: 
07-14 22:30:35.963: D/ffmpeg(30354):  creation_time : 2015-07-15 05:30:32 
07-14 22:30:35.963: D/ffmpeg(30354):  handler_name : SoundHandle 
07-14 22:30:35.963: D/ffmpeg(30354): Stream mapping: 
07-14 22:30:35.963: D/ffmpeg(30354): Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) 
07-14 22:30:35.963: D/ffmpeg(30354): Stream #0:1 -> #0:1 (copy) 
07-14 22:30:35.963: D/ffmpeg(30354): Press [q] to stop, [?] for help 
07-14 22:30:35.963: D/ffmpeg(30354): frame= 17 fps=0.0 q=27.0 size=  0kB time=00:00:00.36 bitrate= 0.0kbits/s  
07-14 22:30:35.963: D/ffmpeg(30354): frame= 33 fps= 32 q=27.0 size=  164kB time=00:00:01.15 bitrate=1163.1kbits/s  
07-14 22:30:35.963: D/ffmpeg(30354): frame= 46 fps= 30 q=29.0 size=  213kB time=00:00:01.33 b 
+0

Bạn sẽ xác định rõ hơn về 'aspect' param để '1' khi bạn có đầu ra video 480x480. – Chamath

+0

ok, tôi làm cách nào để làm điều đó? – Brian

+0

Thử chèn '-aspect 480/480' trước khi bạn chỉ định tệp đầu ra. – Chamath

Trả lời

10

Bạn có thể thử này (chăm sóc cây trồng và thu hẹp quy mô) ...

ffmpeg -i input.file -s 480x480 -vf crop=480:480,setdar=1:1,setsar=1:1 output.mp4

-s sẽ thiết lập quy mô (video vùng canvas)
crop=480:480 sẽ cắt từ trung tâm .. nếu bạn cần từ sử dụng cụ thể: crop=480:480:pos-X:pos-Y
setdar sẽ thiết lập Displa y Aspect Ratio
setsar sẽ thiết lập mẫu Aspect Ratio

Kết quả: (màn hình nắm lấy ảnh tĩnh MP4 qua MPC-Home Cinema)

enter image description here

+0

cảm ơn, có vẻ như tôi thiếu một số lệnh vf – Brian

+0

một số thiết bị tôi đã thử nghiệm trên thực tế vẫn có vẻ hơi méo mó, không nên Tỷ lệ khung hình mẫu là tỷ lệ apsect ban đầu? – Brian

+0

Xin lỗi tôi không có thiết bị Android thử nghiệm trên tay (chỉ màn hình máy tính). 'Dar = 72: 72' hoặc thậm chí' dar = 172: 72' có hoạt động tốt hơn không? Kiểm tra ** [bài viết này] (https://spreadys.wordpress.com/2014/03/17/resizing-in-ffmpeg/) ** để được tư vấn hữu ích và ** [bài viết này] (http: // unix .stackexchange.com/questions/175090/burning-a-video-file-với-phi tiêu chuẩn-aspect-ratio-to-dvd/175507 # 175507) ** cũng hữu ích.Bạn có thể thực hiện các phép tính Pixel Aspect bằng cách sử dụng cả 'sar' và' dar' dựa trên chiều rộng và chiều cao của video đầu vào. 'DAR/SAR = PAR'. –

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