stu*_*ent 5 bash mplayer video-editing video-encoding
我需要一个名为的脚本myslide
,它执行以下操作:
myslide -f 15 -t 20 "Hello World"
生成一个电影文件(由 mplayer 播放),它只在屏幕中央以 15 号字体显示“Hello World”20 秒。
是否有捷径可寻?
这里提出了两种可能性,使用。
编辑:现在这两个脚本已凝结和修改只玩一个单一的指定帧的然而,许多秒的持续时间。mplayer
可以处理非常低的 FPS(例如0.008547009和0.003154574 FPS 工作正常,即 117 和 317 秒的播放时间)。
注意:在 Ubuntu 10.04 机器上。mplayer
不播放第一帧,所以我需要包含 2 帧才能达到指定的时间。因此,请注意其他玩家可能会同时播放两帧,从而使播放时间加倍。
AviSynth是一个多功能/强大的帧服务器。没有图形用户界面。它是一种用于非线性音视频编辑/创建/过滤的脚本语言。
作为帧服务器,它不需要在磁盘上创建视频。它可以直接将视频/音频逐帧提供给任何 AviSynth 感知工具,无论是媒体播放器还是编码器......
AviSynth 是为 Windows 编写的免费和开源软件(我失去了你吗?:) ...进行了尝试,但没有成功移植到 *nix(我相信开发人员尝试过,但由于其原始设计而陷入困境重钩到Windows的东西,但它确实,做工精良下wine
,该酒的版本mplayer
,并Avidemux
可以处理.avs脚本(还有其他的,比如VirtualDub中,并AvsPmod这是一个的Avisynth迷你“IDE” GUI)。
这是一个 AviSynth 脚本,可以执行您想要的操作。
myslide 15 20 "Hello from AviSynth"
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
fontSize=$1; sec=$2; text="$3"
>>test.avs printf 'Blankclip( 2 ,width=640 ,height=480 ,fps=1/float(%s), color=$000000)\n' "$sec"
>>test.avs printf ' \ .Subtitle("%s", font="Arial", size=%s, text_color=$ff0000, align=5)\n' "$text" "$fontSize"
wine avs2yuv.exe test.avs - 2>/dev/null |
ffmpeg -b 100 -i - "test.mp4" 2>/dev/null
mplayer test.mp4
Run Code Online (Sandbox Code Playgroud)
avs2yuv是一个命令行程序,旨在在 Wine 下使用,用于连接Avisynth和基于 Linux 的视频工具。
avs2yuv仅读取视频流,但AviSynth可以将音频和视频帧提供给Avidemux
via AvsProxy
(随 Avidemux 一起提供)...
这是另一种方式,使用convert
from package imagemagick
。此方法创建一系列 .jpg 图像。
myslide 15 20 "Hello from convert"
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
fontSize=$1; sec=$2; text="$3"
FPS=$(awk 'END{print 1/'$2'}' /dev/null)
convert -background lightblue -fill blue -pointsize $fontSize -gravity center -size 640x480 caption:"$text" "test$$0.jpg"
cp test$$0.jpg "test$$1.jpg" # Add 1 extra; mplayer doesn't play ist frame (on test system)
ffmpeg -y -r $FPS -b 100 -i test$$%d.jpg test.mp4
rm test$$*.jpg # remove temp images
mplayer test.mp4
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1408 次 |
最近记录: |