進一步限制 ffmpeg 控制台輸出

進一步限制 ffmpeg 控制台輸出

更新:請參閱底部的編輯部分

有沒有辦法透過設定選項或處理輸出來限制 ffmpeg 的控制台輸出?我查看了文檔,並設定了限制輸出的可用選項,但我希望可能有其他方法可以進一步限制它。我還查看了我能找到的有關 ffmpeg 詳細程度的帖子,例如討論了 -loglevel 選項,但它沒有提供足夠的控制。

這是在不使用 -loglevel 錯誤選項完全靜音輸出的情況下可以獲得的最簡單的輸出,這不是我想要的。

ffmpeg -hide_banner -i input.mkv -c:v libx265 -crf 26 -x265-params log-level=error -vtag hvc1 -c:a ac3 -c:s mov_text output.mp4 
Input #0, matroska,webm, from './input.mkv':
  Metadata:
    encoder         : no_variable_data
    creation_time   : 1970-01-01T00:00:00.000000Z
  Duration: 00:48:46.48, start: 0.000000, bitrate: 9619 kb/s
    Chapter #0:0: start 0.000000, end 326.409000
    Metadata:
      title           : 00:00:00.000
    Chapter #0:1: start 326.409000, end 1037.912000
    Metadata:
      title           : 00:05:26.409
    Chapter #0:2: start 1037.912000, end 1516.640000
    Metadata:
      title           : 00:17:17.912
    Chapter #0:3: start 1516.640000, end 2359.732000
    Metadata:
      title           : 00:25:16.640
    Chapter #0:4: start 2359.732000, end 2887.009000
    Metadata:
      title           : 00:39:19.732
    Chapter #0:5: start 2887.009000, end 2926.475000
    Metadata:
      title           : 00:48:07.009
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Metadata:
      BPS             : 8107717
      BPS-eng         : 8107717
      DURATION        : 00:48:46.466000000
      DURATION-eng    : 00:48:46.466000000
      NUMBER_OF_FRAMES: 70165
      NUMBER_OF_FRAMES-eng: 70165
      NUMBER_OF_BYTES : 2965869890
      NUMBER_OF_BYTES-eng: 2965869890
      _STATISTICS_WRITING_APP: no_variable_data
      _STATISTICS_WRITING_APP-eng: no_variable_data
      _STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
      _STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
    Metadata:
      BPS             : 1508999
      BPS-eng         : 1508999
      DURATION        : 00:48:46.475000000
      DURATION-eng    : 00:48:46.475000000
      NUMBER_OF_FRAMES: 274357
      NUMBER_OF_FRAMES-eng: 274357
      NUMBER_OF_BYTES : 552006284
      NUMBER_OF_BYTES-eng: 552006284
      _STATISTICS_WRITING_APP: no_variable_data
      _STATISTICS_WRITING_APP-eng: no_variable_data
      _STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
      _STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:2(eng): Subtitle: subrip (default) (forced)
    Metadata:
      title           : Forced
      BPS             : 105
      BPS-eng         : 105
      DURATION        : 00:00:18.518000000
      DURATION-eng    : 00:00:18.518000000
      NUMBER_OF_FRAMES: 6
      NUMBER_OF_FRAMES-eng: 6
      NUMBER_OF_BYTES : 245
      NUMBER_OF_BYTES-eng: 245
      _STATISTICS_WRITING_APP: no_variable_data
      _STATISTICS_WRITING_APP-eng: no_variable_data
      _STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
      _STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:3(eng): Subtitle: subrip
    Metadata:
      BPS             : 61
      BPS-eng         : 61
      DURATION        : 00:47:20.754000000
      DURATION-eng    : 00:47:20.754000000
      NUMBER_OF_FRAMES: 584
      NUMBER_OF_FRAMES-eng: 584
      NUMBER_OF_BYTES : 21796
      NUMBER_OF_BYTES-eng: 21796
      _STATISTICS_WRITING_APP: no_variable_data
      _STATISTICS_WRITING_APP-eng: no_variable_data
      _STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
      _STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:4(eng): Subtitle: subrip
    Metadata:
      title           : SDH
      BPS             : 62
      BPS-eng         : 62
      DURATION        : 00:48:07.176000000
      DURATION-eng    : 00:48:07.176000000
      NUMBER_OF_FRAMES: 619
      NUMBER_OF_FRAMES-eng: 619
      NUMBER_OF_BYTES : 22653
      NUMBER_OF_BYTES-eng: 22653
      _STATISTICS_WRITING_APP: no_variable_data
      _STATISTICS_WRITING_APP-eng: no_variable_data
      _STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
      _STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
  Stream #0:1 -> #0:1 (dts (dca) -> ac3 (native))
  Stream #0:2 -> #0:2 (subrip (srt) -> mov_text (native))
Press [q] to stop, [?] for help
Output #0, mp4, to './output.mp4':
    Chapter #0:0: start 0.000000, end 326.409000
    Metadata:
      title           : 00:00:00.000
    Chapter #0:1: start 326.409000, end 1037.912000
    Metadata:
      title           : 00:05:26.409
    Chapter #0:2: start 1037.912000, end 1516.640000
    Metadata:
      title           : 00:17:17.912
    Chapter #0:3: start 1516.640000, end 2359.732000
    Metadata:
      title           : 00:25:16.640
    Chapter #0:4: start 2359.732000, end 2887.009000
    Metadata:
      title           : 00:39:19.732
    Chapter #0:5: start 2887.009000, end 2926.475000
    Metadata:
      title           : 00:48:07.009
    Stream #0:0: Video: hevc (libx265) (hvc1 / 0x31637668), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc (default)
    Metadata:
      BPS             : 8107717
      BPS-eng         : 8107717
      DURATION        : 00:48:46.466000000
      DURATION-eng    : 00:48:46.466000000
      NUMBER_OF_FRAMES: 70165
      NUMBER_OF_FRAMES-eng: 70165
      NUMBER_OF_BYTES : 2965869890
      NUMBER_OF_BYTES-eng: 2965869890
      _STATISTICS_WRITING_APP: no_variable_data
      _STATISTICS_WRITING_APP-eng: no_variable_data
      _STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
      _STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      encoder         : Lavc libx265
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 448 kb/s (default)
    Metadata:
      BPS             : 1508999
      BPS-eng         : 1508999
      DURATION        : 00:48:46.475000000
      DURATION-eng    : 00:48:46.475000000
      NUMBER_OF_FRAMES: 274357
      NUMBER_OF_FRAMES-eng: 274357
      NUMBER_OF_BYTES : 552006284
      NUMBER_OF_BYTES-eng: 552006284
      _STATISTICS_WRITING_APP: no_variable_data
      _STATISTICS_WRITING_APP-eng: no_variable_data
      _STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
      _STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      encoder         : Lavc ac3
    Stream #0:2(eng): Subtitle: mov_text (tx3g / 0x67337874) (default) (forced)
    Metadata:
      title           : Forced
      BPS             : 105
      BPS-eng         : 105
      DURATION        : 00:00:18.518000000
      DURATION-eng    : 00:00:18.518000000
      NUMBER_OF_FRAMES: 6
      NUMBER_OF_FRAMES-eng: 6
      NUMBER_OF_BYTES : 245
      NUMBER_OF_BYTES-eng: 245
      _STATISTICS_WRITING_APP: no_variable_data
      _STATISTICS_WRITING_APP-eng: no_variable_data
      _STATISTICS_WRITING_DATE_UTC: 1970-01-01 00:00:00
      _STATISTICS_WRITING_DATE_UTC-eng: 1970-01-01 00:00:00
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      encoder         : Lavc mov_text
frame= 1047 fps= 58 q=33.7 size=    2560kB time=00:00:44.37 bitrate= 472.6kbits/s speed=2.48x    

這就是我理想中想要擁有的:

ffmpeg -hide_banner -i input.mkv -c:v libx265 -crf 26 -x265-params log-level=error -vtag hvc1 -c:a ac3 -c:s mov_text output.mp4 
Input #0, matroska,webm, from './input.mkv':
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
    Stream #0:2(eng): Subtitle: subrip (default) (forced)
    Stream #0:3(eng): Subtitle: subrip
    Stream #0:4(eng): Subtitle: subrip
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
  Stream #0:1 -> #0:1 (dts (dca) -> ac3 (native))
  Stream #0:2 -> #0:2 (subrip (srt) -> mov_text (native))
Press [q] to stop, [?] for help
Output #0, mp4, to './output.mp4':
    Stream #0:0: Video: hevc (libx265) (hvc1 / 0x31637668), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc (default)
    Stream #0:1(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 448 kb/s (default)
    Stream #0:2(eng): Subtitle: mov_text (tx3g / 0x67337874) (default) (forced)
frame= 1047 fps= 58 q=33.7 size=    2560kB time=00:00:44.37 bitrate= 472.6kbits/s speed=2.48x   

如果沒有辦法用 ffmpeg 做到這一點,如果有人能給出一個關於如何從輸出中過濾掉所有不需要的文字的範例,那就太好了。

編輯:按照使用 grep 的建議,我想出了這個,這讓我幾乎到了那裡。唯一剩下的問題是 grep 使進度顯示在連續的新行上,而我無法對此進行過濾。

ffmpeg -progress pipe:1 -i input.mkv -c:v libx265 -vtag hvc1 -c:a copy -c:s mov_text output.mp4 2>&1 | egrep "Input.*|Duration.*|Stream.*|Output.*|frame=.*"

給出這個輸出:

Input #0, matroska,webm, from './input.mkv':
  Duration: 00:43:04.59, start: 0.000000, bitrate: 7253 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
    Stream #0:2(eng): Subtitle: subrip (default) (forced)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (subrip (srt) -> mov_text (native))
Output #0, mp4, to '/output.mp4':
    Stream #0:0(eng): Video: hevc (libx265) (hvc1 / 0x31637668), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 23.98 fps, 13978 tbn, 23.98 tbc (default)
    Stream #0:1(eng): Audio: dts (DTS) (mp4a / 0x6134706D), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
    Stream #0:2(eng): Subtitle: mov_text (tx3g / 0x67337874) (default) (forced)
frame=92 92 fps=0.0 q=29.8 size=       0kB time=00:00:04.52 bitrate=   0.4kbits/s speed=9.01x    
frame=17676 fps=174 q=31.2 size=       0kB time=00:00:08.04 bitrate=   0.3kbits/s speed=7.94x    
frame=25555 fps=168 q=35.8 size=     256kB time=00:00:11.38 bitrate= 184.4kbits/s speed=7.48x    
frame=29191 fps=143 q=34.4 size=     512kB time=00:00:12.88 bitrate= 325.7kbits/s speed=6.34x  

答案1

由於您想創建自己的日誌記錄級別,因此您需要自己完成。

例如,您可能會使用以下內容:

unbuffer ffmpeg … | unbuffer grep PATTERN

其中 PATTERN 是一個正規表示式,它定義您希望傳遞的輸出行。

相關內容