【发布时间】:2019-09-13 16:22:47
【问题描述】:
这是我的代码:
Input #0, mpegts, from 'tcp://127.0.0.1:3456':
Duration: N/A, start: 1809.522000, bitrate: N/A
Program 256
Metadata:
service_name : AIR_CH_521_6M
service_provider: ITE
Stream #0:0[0x7d1]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1920x1080, 30 fps, 30 tbr, 90k tbn, 60 tbc
Stream #0:1[0x7d2]: Audio: mp3 ([4][0][0][0] / 0x0004), 0 channels
如何从这个字符串中获取 fps、像素格式、视频编解码器、音频编解码器、输入分辨率、输出分辨率和音频通道作为数组?
根据我目前的努力,这是我所能得到的,因为我不是正则表达式专家:
/Video: ([^\r\n]*), ([^,]*), ([0-9]{1,4})x([0-9]{1,4})/iu
编辑:我尝试了另一个视频,但正则表达式不匹配。知道为什么吗?
data :ffmpeg version 2.8.15-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
data : libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
data :Metadata:
Server NGINX
width 1280.00
height 720.00
displayWidth 1280.00
data : displayHeight 720.00
duration 0.00
framerate 30.00
fps 30.00
videodatarate 0.00
videocodecid 7.00
audiodatarate 125.00
audiocodecid 10.00
data :Input #0, live_flv, from 'rtmp://localhost/test/test':
Metadata:
Server : NGINX
displayWidth : 1280
data : displayHeight : 720
fps : 30
profile :
level :
Duration: 00:00:00.00, start: 11168.744000, bitrate: N/A
Stream #0:0: Video: h264 (High), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 30.30 fps, 30 tbr, 1k tbn, 60 tbc
Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s
Output #0, mpegts, to '/dev/null':
Metadata:
Server : NGINX
displayWidth : 1280
displayHeight : 720
fps : 30
profile :
level :
encoder : Lavf56.40.101
Stream #0:0: Video: h264, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 30.30 fps, 30 tbr, 90k tbn, 1k tbc
Stream #0:1: Audio: aac, 44100 Hz, stereo, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
data :frame= 54 fps=0.0 q=-1.0 size= 825kB time=00:00:02.22 bitrate=3031.6kbits/s
data :frame= 66 fps= 60 q=-1.0 size= 1004kB time=00:00:02.74 bitrate=3002.7kbits/s
data :frame= 82 fps= 50 q=-1.0 size= 1224kB time=00:00:03.34 bitrate=2998.5kbits/s
这是来自另一个文件的输入,用于正则表达式不匹配的同一命令:https://regex101.com/r/Vyq5kD/4
【问题讨论】:
-
你能提供你想要的输出吗?
-
如果我们能得到这样的输出就好了 .. INPUT [h264,High,yuv420p,1280x720,SAR 1:1,DAR 16:9,30.30 fps, 30 tbr, 1k tbn , 60 待定]。 [aac,LC,44100 Hz,立体声,fltp,128 kb/s] , 输出 [h264,High,yuv420p,1280x720,SAR 1:1,DAR 16:9,30.30 fps, 30 tbr, 1k tbn, 60 tbc ] . [aac,LC,44100 Hz,立体声,fltp,128 kb/s]
标签: javascript arrays regex