【发布时间】:2017-11-14 20:45:51
【问题描述】:
我正在尝试解析如下所示的 输出:
b"Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../abc/def/vid.mp4':\n Metadata:\n major_brand : isom\n minor_version : 512\n compat
ible_brands: isomiso2avc1mp41\n encoder : Lavf56.40.101\n Duration: 00:03:40.36, start: 0.000000, bitrate: 445 kb/s\n Stream #0:0(und): Video: h264 (Main) (avc1 /
0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 311 kb/s, 29.92 fps, 29.92 tbr, 90k tbn, 59.83 tbc (default)\n Metadata:\n handler_name : VideoHandler\n Stream #
0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)\n Metadata:\n handler_name : SoundHandler\nOutput #0, null, to 'pipe:':\n M
etadata:\n major_brand : isom\n minor_version : 512\n compatible_brands: isomiso2avc1mp41\n encoder : Lavf56.40.101\n Stream #0:0(und): Video: rawvi
deo (I420 / 0x30323449), yuv420p, 480x360 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 29.92 fps, 29.92 tbn, 29.92 tbc (default)\n Metadata:\n handler_name : VideoHandler\n
encoder : Lavc56.60.100 rawvideo\n Stream #0:1(und): Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s (default)\n Metadata:\n handler_name : SoundHan
dler\n encoder : Lavc56.60.100 pcm_s16le\nStream mapping:\n Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))\n Stream #0:1 -> #0:1 (aac (native) -> pcm_s1
6le (native))\nPress [q] to stop, [?] for help\n[null @ 0x7af4c0] Encoder did not produce proper pts, making some up.\nframe= 1434 fps=0.0 q=-0.0 size=N/A time=00:00:48.06 bitra
te=N/A \rframe= 2718 fps=2715 q=-0.0 size=N/A time=00:01:30.97 bitrate=N/A \rframe= 4183 fps=2785 q=-0.0 size=N/A time=00:02:19.94 bitrate=N/A \rframe= 5494 fps=2743 q=
-0.0 size=N/A time=00:03:03.78 bitrate=N/A \rframe= 6590 fps=2765 q=-0.0 Lsize=N/A time=00:03:40.35 bitrate=N/A \nvideo:618kB audio:37960kB subtitle:0kB other streams:0kB
global headers:0kB muxing overhead: unknown\n"
我想在这个中找到一个pattern,它的开始看起来像这样:
Stream #0:0(und): Video:
或者像这样的模式:
Stream #0:0: Audio:
所以,我在 python3.5 中尝试了这个正则表达式:
re.search("^\s*Stream[\s.]*:\s(Video|Audio)[\s.]*", data)
由于输出(需要解析)是字节字符串,我已经使用output.decode("utf-8") 进行了转换。
但是,re.search(...) 的输出是 None,所以这不是在 output 中找到 pattern 的正确正则表达式吗?
【问题讨论】:
-
@WiktorStribiżew 谢谢,这当然有帮助,但需要一些调整,请参阅我更新的问题
-
预期的匹配是什么?请更新问题。另见regex101.com/r/uaHRwa/4
标签: regex python-3.5