ffmpeg 复杂过滤器导致视频质量较低

ffmpeg 复杂过滤器导致视频质量较低

我在使用复杂过滤器时遇到了问题,我将其缩放到 720p,但它仍然输出低质量图像。我可以确认输入源是 720p,但输出结果看起来更像是 240p。

ffmpeg -re -i "https://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8" -i ./public/images/ACE.png -i ./public/images/logo2.jpg -i ./public/images/crunchy.png -i ./public/images/red.jpg -filter_complex \
    "[0]scale=1290:720,setsar=1[ovrl0]; \
     [1]scale=40:40[ovrl1]; \
     [2]scale=40:40[ovrl2]; \
     [3]scale=40:40[ovrl3]; \
     [4]scale=40:40[ovrl4]; \
     [ovrl0][ovrl1] overlay=x=(main_w-overlay_w)/1.025:y=(main_h-overlay_h)/18:enable='lt(mod(t,40),10)'[v1]; \
     [v1][ovrl2] overlay=x=(main_w-overlay_w)/1.025:y=(main_h-overlay_h)/18:enable='between(mod(t,40),10,20)'[v2]; \
     [v2][ovrl3] overlay=x=(main_w-overlay_w)/1.025:y=(main_h-overlay_h)/18:enable='gt(mod(t,40),20)'[v3]; \
     [v3][ovrl4] overlay=x=(main_w-overlay_w)/1.025:y=(main_h-overlay_h)/18:enable='gt(mod(t,40),30)'" -acodec aac -vcodec libx264 -f flv "rtmp://a.rtmp.youtube.com/live2/2222-2222-2222-2222"

控制台输出

ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma --enable-nonfree
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear2/prog_index.m3u8' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear3/prog_index.m3u8' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear1/fileSequence0.ts' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear2/fileSequence0.ts' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear3/fileSequence0.ts' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear4/fileSequence0.ts' for reading
Input #0, hls,applehttp, from 'http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8':
  Duration: 00:30:01.00, start: 10.000000, bitrate: 0 kb/s
  Program 0 
    Metadata:
      variant_bitrate : 200000
    Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 22050 Hz, mono, fltp
    Metadata:
      variant_bitrate : 200000
    Stream #0:1: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/smpte170m/bt709), 192x144, 14.99 fps, 14.99 tbr, 90k tbn, 180k tbc
    Metadata:
      variant_bitrate : 200000
  Program 1 
    Metadata:
      variant_bitrate : 311111
    Stream #0:2: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/smpte170m/bt709), 320x240, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc
    Metadata:
      variant_bitrate : 311111
    Stream #0:3: Audio: aac (LC) ([15][0][0][0] / 0x000F), 22050 Hz, mono, fltp
    Metadata:
      variant_bitrate : 311111
  Program 2 
    Metadata:
      variant_bitrate : 484444
    Stream #0:4: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/smpte170m/bt709), 480x360, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc
    Metadata:
      variant_bitrate : 484444
    Stream #0:5: Audio: aac (LC) ([15][0][0][0] / 0x000F), 22050 Hz, mono, fltp
    Metadata:
      variant_bitrate : 484444
  Program 3 
    Metadata:
      variant_bitrate : 737777
    Stream #0:6: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/smpte170m/bt709), 480x360, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc
    Metadata:
      variant_bitrate : 737777
    Stream #0:7: Audio: aac (LC) ([15][0][0][0] / 0x000F), 22050 Hz, mono, fltp
    Metadata:
      variant_bitrate : 737777
Input #1, png_pipe, from './public/images/ACE.png':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: png, pal8(pc), 200x200 [SAR 2835:2835 DAR 1:1], 25 tbr, 25 tbn, 25 tbc
Input #2, image2, from './public/images/logo2.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 49832 kb/s
    Stream #2:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 2371x1967 [SAR 300:300 DAR 2371:1967], 25 tbr, 25 tbn, 25 tbc
Input #3, png_pipe, from './public/images/crunchy.png':
  Duration: N/A, bitrate: N/A
    Stream #3:0: Video: png, pal8(pc), 225x225, 25 tbr, 25 tbn, 25 tbc
Input #4, image2, from './public/images/red.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 4862 kb/s
    Stream #4:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 482x372 [SAR 300:300 DAR 241:186], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:1 (h264) -> scale (graph 0)
  Stream #1:0 (png) -> scale (graph 0)
  Stream #2:0 (mjpeg) -> scale (graph 0)
  Stream #3:0 (png) -> scale (graph 0)
  Stream #4:0 (mjpeg) -> scale (graph 0)
  overlay (graph 0) -> Stream #0:0 (libx264)
  Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[swscaler @ 0x7f9fdf071c00] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x7f9fde9bc400] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x7f9fe0034800] using SAR=1/1
[libx264 @ 0x7f9fe0034800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x7f9fe0034800] profile High, level 3.2
[libx264 @ 0x7f9fe0034800] 264 - core 148 r2795 aaa9aa8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=6 lookahead_threads=1 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=14 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, flv, to 'rtmp://a.rtmp.youtube.com/live2/2222-2222-2222-2222':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 1290x720 [SAR 1:1 DAR 43:24], q=-1--1, 14.99 fps, 1k tbn, 14.99 tbc (default)
    Metadata:
      encoder         : Lavc57.107.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 22050 Hz, mono, fltp, 69 kb/s
    Metadata:
      variant_bitrate : 200000
      encoder         : Lavc57.107.100 aac
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear1/fileSequence1.ts' for reading
[hls,applehttp @ 0x7f9fdf002200] No longer receiving playlist 1
[hls,applehttp @ 0x7f9fdf002200] No longer receiving playlist 2
[hls,applehttp @ 0x7f9fdf002200] No longer receiving playlist 3
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear1/fileSequence2.ts' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear1/fileSequence3.ts' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear1/fileSequence4.ts' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear1/fileSequence5.ts' for reading
[hls,applehttp @ 0x7f9fdf002200] Opening 'http://devimages.apple.com/iphone/samples/bipbop/gear1

答案1

您的 m3u8 输入包含四个视频流:最小尺寸为 192x144,最大尺寸仅为 480x360。控制台输出显示已选择 192x144 流。您正在升级到 1290x720。无论如何,从 192x144(或 480x360)升级到 1290x720 看起来都很糟糕。

建议的解决方案是找到具有更高分辨率的输入并避免升级。

相关内容