我编写了一个 bash 脚本,在新终端中运行一些其他命令:
#!/bin/bash
# Sample script
gnome-terminal --title="blah blah" -x bash -c ffmpeg -i udp://239.1.2.1:60001?fifo_size=50000000 -acodec copy -vcodec copy -preset ultrafast \
-flags -global_header -f hls -hls_time 20 -hls_wrap 5 /var/www/html/ts/1.m3u8 &
sleep 1
gnome-terminal --title="blah blah" -x bash -c ffmpeg -i udp://239.1.2.2:60002?fifo_size=50000000 -acodec copy -vcodec copy -preset ultrafast \
-flags -global_header -f hls -hls_time 20 -hls_wrap 5 /var/www/html/ts/2.m3u8
每行的输出ffmpeg
超过一页,类似于:
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
... many pages after ....
[h264 @ 0xc04c60] decode_slice_header error
[h264 @ 0xc04c60] no frame!
[h264 @ 0xc04c60] non-existing PPS 0 referenced
.... many pages after ....
Program 105
Metadata:
service_name : IRIB-TV5
service_provider: IRIB
[adts @ 0xf943e0] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
Output #0, hls, to '/home/stream/Desktop/tst/1.m3u8':
Metadata:
encoder : Lavf56.4.101
Stream #0:0: Video: h264 (libx264), yuv420p, 720x576 [SAR 12:11 DAR 15:11], q=-1--1, 25 fps, 90k tbn, 25 tbc
Metadata:
encoder : Lavc56.1.100 libx264
Stream #0:1(per): Audio: aac, 48000 Hz, stereo, fltp, 128 kb/s
Metadata:
encoder : Lavc56.1.100 aac
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac_latm (native) -> aac (native))
Press [q] to stop, [?] for help
[h264 @ 0xf42120] reference picture missing during reorder
[h264 @ 0xf42120] Missing reference picture, default is 65716
[h264 @ 0xf42120] reference picture missing during reorder
[h264 @ 0xf42120] Missing reference picture, default is 65717
当我在新终端中运行此脚本并启动命令(在本例中ffmpeg
)时,它会立即显示许多输出行,有时甚至显示许多页面,并且自动转至最后一条消息...
我如何在终端上上下滚动到第一条消息,或者在第一页停止它?
答案1
更新之后,问题被彻底重新表述:
您可以使用| more
或| less
在第一页之后停止输出。
gnome-terminal --title="blah blah" -x bash -c ' find ~ | less'
笔记:您需要使用''
来说明 bash 命令的结束位置。您可以
在其中less
移动:
- Home以及End页面的开头和结尾。
- PgUp以及PgUp向下或向上一页。
- Up以及Dn向上或向下一行。
脚本中的其中一行可以类似于
gnome-terminal --title="blah blah" -x bash -c \
'ffmpeg -i udp://239.1.2.1:60001?fifo_size=50000000 -acodec copy -vcodec copy \
-preset ultrafast -flags -global_header -f hls -hls_time 20 -hls_wrap 5 \
/var/www/html/ts/1.m3u8 | less ' &
有一些捷径:
- Ctrl++Shift或向上Up或Dn向下滚动一行
- Shift+PgUp或PgDn向上或向下滚动页面
- Shift+Home或End向上滚动到开头或向下滚动到结尾
您可以直接在gnome 帮助页面。