使用ffmpeg将介绍图像开始合并到视频后如何保持视频质量不变 [英] How to keep video quality same as it is after merge intro image beggining to video using ffmpeg

查看:135
本文介绍了使用ffmpeg将介绍图像开始合并到视频后如何保持视频质量不变的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我选择了高分辨率视频,但是一旦我运行命令,视频分辨率质量就发生了变化,而我得到的视频质量太差,作为输出视频,但我不想失去我的视频质量.让我在下面分享完整的命令和完整的日志:

I have selected high resolution video but once i run command the video resolution quality was changed and too poor quality's video i get as output video, but i don't would like to loose my video quality. let me share full command and complete log below:

注意:libx264 编码器不支持 iOS,我收到失败错误,所以我使用 h264_videotoolbox 所以我想使用 h264_videotoolbox 编码器获得支持的命令

Note: libx264 encoder is not supporting iOS, I'm getting failure error so i use h264_videotoolbox so i would like to get supported command with h264_videotoolbox encoder

命令:

ffmpeg -i test.MOV -loop 1 -t 5 -i 2.jpg -f lavfi -t 5 -i anullsrc-filter_complex "[0:v]trim=0:5,drawbox=t=fill[base];[1][base]scale2ref=iw:ih:force_original_aspect_ratio=decrease:flags=spline[2nd][base2];[base2][2nd]overlay='(Ww)/2':'(Hh)/2'[padded];[padded][2:a][0:v][0:a]concat=n=2:v=1:a=1[v][a]"-c:v h264_videotoolbox -c:a aac -map "[v]";-map "[a]";输出.mp4

ffmpeg -i test.MOV -loop 1 -t 5 -i 2.jpg -f lavfi -t 5 -i anullsrc -filter_complex "[0:v]trim=0:5,drawbox=t=fill[base];[1][base]scale2ref=iw:ih:force_original_aspect_ratio=decrease:flags=spline[2nd][base2];[base2][2nd]overlay='(W-w)/2':'(H-h)/2'[padded];[padded][2:a][0:v][0:a]concat=n=2:v=1:a=1[v][a]" -c:v h264_videotoolbox -c:a aac -map "[v]" -map "[a]" output.mp4

完整日志

ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 12.0.0 (clang-1200.0.32.29)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.4_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.MOV':
  Metadata:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    creation_time   : 2021-03-07T06:36:17.000000Z
    com.apple.quicktime.location.accuracy.horizontal: 30.000000
    com.apple.quicktime.location.ISO6709: +23.1141+072.5768+061.729/
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone 6s
    com.apple.quicktime.software: 14.3
    com.apple.quicktime.creationdate: 2021-03-07T12:06:17+0530
  Duration: 00:00:29.79, start: 0.000000, bitrate: 15778 kb/s
  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 15643 kb/s, 29.98 fps, 29.97 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      creation_time   : 2021-03-07T06:36:17.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : H.264
  Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 89 kb/s (default)
    Metadata:
      creation_time   : 2021-03-07T06:36:17.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
  Stream #0:2(und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2021-03-07T06:36:17.000000Z
      handler_name    : Core Media Metadata
  Stream #0:3(und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2021-03-07T06:36:17.000000Z
      handler_name    : Core Media Metadata
  Stream #0:4(und): Data: none (mebx / 0x7862656D), 34 kb/s (default)
    Metadata:
      creation_time   : 2021-03-07T06:36:17.000000Z
      handler_name    : Core Media Metadata
Input #1, image2, from '2.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 17347 kb/s
  Stream #1:0: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 360x360 [SAR 72:72 DAR 1:1], 25 fps, 25 tbr, 25 tbn, 25 tbc
Input #2, lavfi, from 'anullsrc':
  Duration: N/A, start: 0.000000, bitrate: 705 kb/s
  Stream #2:0: Audio: pcm_u8, 44100 Hz, stereo, u8, 705 kb/s
Stream mapping:
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> concat:in1:v0
  Stream #0:1 (aac) -> concat:in1:a0
  Stream #1:0 (mjpeg) -> scale2ref:default
  Stream #2:0 (pcm_u8) -> concat:in0:a0
  concat:out:v0 -> Stream #0:0 (h264_videotoolbox)
  concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[swscaler @ 0x7f976242b000] deprecated pixel format used, make sure you did set range correctly
Output #0, mp4, to 'output.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    com.apple.quicktime.creationdate: 2021-03-07T12:06:17+0530
    com.apple.quicktime.location.accuracy.horizontal: 30.000000
    com.apple.quicktime.location.ISO6709: +23.1141+072.5768+061.729/
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone 6s
    com.apple.quicktime.software: 14.3
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, q=2-31, 200 kb/s, 29.97 fps, 30k tbn (default)
    Metadata:
      encoder         : Lavc58.134.100 h264_videotoolbox
  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
    Metadata:
      encoder         : Lavc58.134.100 aac
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   frame=   12 fps=0.0 q=-0.0 size=     256kB time=00:00:00.32 bitrate=6452.4kbits/frame=   34 fps= 32 q=-0.0 size=     256kB time=00:00:01.02 bitrate=2053.0kbits/frame=   55 fps= 35 q=-0.0 size=     256kB time=00:00:01.74 bitrate=1204.4kbits/frame=   76 fps= 37 q=-0.0 size=     256kB time=00:00:02.46 bitrate= 852.2kbits/frame=   98 fps= 38 q=-0.0 size=     256kB time=00:00:03.18 bitrate= 659.4kbits/frame=  120 fps= 39 q=-0.0 size=     256kB time=00:00:03.90 bitrate= 537.7kbits/frame=  141 fps= 39 q=-0.0 size=     512kB time=00:00:04.62 bitrate= 907.8kbits/[out_0_0 @ 0x7f975de0ae80] 100 buffers queued in out_0_0, something may be wrong.
[out_0_1 @ 0x7f975de0a5c0] 100 buffers queued in out_0_1, something may be wrong.
frame=  301 fps= 67 q=-0.0 size=     768kB time=00:00:11.09 bitrate= 566.9kbits/frame=  406 fps= 81 q=-0.0 size=    1024kB time=00:00:14.60 bitrate= 574.4kbits/frame=  509 fps= 92 q=-0.0 size=    1280kB time=00:00:18.04 bitrate= 581.2kbits/frame=  604 fps=100 q=-0.0 size=    1792kB time=00:00:21.19 bitrate= 692.5kbits/frame=  705 fps=108 q=-0.0 size=    2048kB time=00:00:24.56 bitrate= 682.9kbits/frame=  809 fps=115 q=-0.0 size=    2304kB time=00:00:28.04 bitrate= 672.9kbits/frame=  909 fps=121 q=-0.0 size=    2816kB time=00:00:31.37 bitrate= 735.4kbits/frame= 1012 fps=126 q=-0.0 size=    3072kB time=00:00:34.71 bitrate= 725.0kbits/frame= 1043 fps=127 q=-0.0 Lsize=    3288kB time=00:00:34.78 bitrate= 774.3kbits/s speed=4.23x    
video:2995kB audio:255kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.168448%
[aac @ 0x7f9760024200] Qavg: 9569.656

推荐答案

主视频的比特率约为 15778K,这是质量高的信号...

The main video have a bitrate aprox of 15778K, and this is a signal for quality hight...

持续时间:00:00:29.79,开始:0.000000,比特率:15778 kb/s

Duration: 00:00:29.79, start: 0.000000, bitrate: 15778 kb/s

您必须在代码中加入比特率参数 -b:v {bitrate, in this case 15778K} 以保持高品质,例如

You have to put bitrate parameter -b:v {bitrate, in this case 15778K} in your code to keep hight qualiy, some like

ffmpeg -i test.MOV -loop 1 -t 5 -i 2.jpg -f lavfi -t 5 -i anullsrc -filter_complex "[0:v]trim=0:5,drawbox=t=fill[base];[1][base]scale2ref=iw:ih:force_original_aspect_ratio=decrease:flags=spline[2nd][base2];[base2][2nd]overlay='(W-w)/2':'(H-h)/2'[padded];[padded][2:a][0:v][0:a]concat=n=2:v=1:a=1[v][a]" -c:v h264_videotoolbox -b:v 15778K -c:a aac -map "[v]" -map "[a]" output.mp4


注意:如果-c:a aac"有错误参数,删除它,因为在苹果的操作系统中 aac 是默认的,因为它是一个苹果编解码器


NOTE: if have an error with "-c:a aac" parameter, remove it, because in Apple`s OS aac is for default because is an Apple codec

国王问候

这篇关于使用ffmpeg将介绍图像开始合并到视频后如何保持视频质量不变的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆