명령줄에서 텍스트를 동영상으로 변환

명령줄에서 텍스트를 동영상으로 변환

myslide다음을 수행하는 스크립트가 필요합니다 .

myslide -f 15 -t 20 "Hello World"

화면 중앙에 20초 동안 글꼴 크기 15의 "Hello World"만 표시하는 동영상 파일(mplayer에서 재생)을 생성합니다.

찾을 수 있는 단축키가 있나요?

답변1

여기에서는 를 사용하여 두 가지 가능성이 제안됩니다.

편집하다:이제 두 스크립트 모두 압축되어 재생 전용으로 수정되었습니다.하나의프레임이 지속되는 시간(초)을 지정합니다. mplayer매우 낮은 FPS를 처리할 수 있습니다(예:0.008547009그리고0.003154574FPS는 잘 작동합니다. 117초 및 317초 재생 시간).

노트:Ubuntu 10.04 시스템에서. mplayer첫 번째 프레임은 재생되지 않으므로 지정된 시간에 도달하려면 2개의 프레임을 포함해야 합니다. 따라서 다른 플레이어가 두 프레임을 모두 플레이하여 게임 시간이 두 배로 늘어날 수 있다는 점에 유의하세요.

avi 합성기다목적/강력한 프레임워크 서버입니다. 그래픽 사용자 인터페이스가 없습니다. 비선형 오디오 비디오 편집/생성/필터링을 위한 스크립팅 언어입니다.
프레임 서버로서 비디오를 디스크에 생성할 필요가 없습니다. AviSynth 인식 도구(미디어 플레이어든 인코더든)에 프레임별로 직접 비디오/오디오 서비스를 제공할 수 있습니다.

AviSynth는 Windows용으로 작성된 무료 오픈 소스 소프트웨어입니다(내가 당신을 잃었습니까? :) ...시도했지만 *nix로의 포팅에 실패했습니다(개발자가 시도했다고 생각하지만 원래 디자인이 Windows에 깊이 집착했기 때문에 막혔습니다)물건. 그러나 그것은원활하게 작업아래에 wine. 이것와인버전 mplayer이며 Avidemux처리할 수 있음.avs스크립트(다른 스크립트도 있습니다. 예:가상 더빙, 그리고AVSPmod이것은 Avisynth의 미니 "IDE" GUI입니다.

다음은 원하는 작업을 수행하는 AviSynth 스크립트입니다.

myslide  15 20 "Hello from AviSynth"

#!/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

AVS2YUVWine에서 사용하도록 설계된 명령줄 프로그램입니다.avicint및 Linux 기반 비디오 도구.
AVS2YUV비디오 스트림만 읽혀지지만avi 합성기오디오 및 비디오 프레임은 (Avidemux와 함께 제공됨)을 Avidemux통해 공급될 수 있습니다 AvsProxy...

---

convert다음은 from package 를 사용하는 또 다른 접근 방식입니다 imagemagick. 이 방법은 일련의 .jpg 이미지를 생성합니다.

myslide  15 20 "Hello from convert"

#!/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

관련 정보