BMPS + WAV를 비디오로 변환하는 스크립트 가능한 유틸리티 (XVID)?
-
19-09-2019 - |
문제
BMP와 WAV 파일을 비디오로 변환하는 스크립트 가능한 유틸리티를 찾고 있습니다. XVID는 출력 형식이어야합니다. 가능하면 Linux (Ubuntu)에서 작업하고 싶습니다. 이 방법을 만들기 위해 36 개의 비디오가 있기 때문에 명령 줄 유틸리티가 좋을 것입니다. ㅏ bash
(또는 [좋아하는 스크립팅 언어 삽입]) 스크립트는 이것에 좋습니다. (또한 다른 비디오 크기를 가지고 놀아야하지만 다른 프로그램을 사용하여 크기를 조정할 수 있습니다.)
나는 VirtualDub (Windows XP 용)과 함께 놀았지만 이러한 요구를 충족시키는 것은 아닙니다. 그래도 나는 틀릴 수 있습니다. 예제에 대한 모든 포인터는 좋을 것입니다.
나도 놀고 있어요 ffmpeg
. 이 법안에 완벽하게 맞는 것 같지만 BMP를 비디오로 모으는 것 같습니다. 내가 시도하는 것은 다음과 같습니다.
for directory in $BMP_DIRECTORY_PATH/*
do
ffmpeg \
-f image2 \
-i "$directory/Sequence %d%d%d%d%d%d.bmp" \
-r 29.97 \
-vcodec mpeg4 \
-vtag xvid \
\
-i "$file/audio.wav" \
-acodec libmp3lame \
\
$(basename $directory.avi)
done
그리고 다음은 다시 말하는 것입니다.
[...]
FFmpeg version 0.5-svn17737+3:0.svn20090303-1ubuntu6, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --extra-version=svn17737+3:0.svn20090303-1ubuntu6 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --disable-stripping --disable-vhook --enable-libdc1394 --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-armvfp --disable-neon --disable-altivec --disable-vis --enable-shared --disable-static
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Apr 10 2009 23:18:41, gcc: 4.3.3
[image2 @ 0x97e5ac0]Could not find codec parameters (Video: bmp)
/home/ben/Pending/1080p_export/6/Sequence %d%d%d%d%d%d.bmp: could not find codec parameters
나는 a 메일 링리스트 게시물 이것에 대해, 그러나 제안 된 것은 여기서는 작동하지 않는 것 같습니다.
업데이트
여러 단계가있는 업데이트 된 스크립트는 다음과 같습니다.
#!/usr/bin/env bash
# bmp+wav2xvid+mp3
#
# Although it has a cryptic name, it's pretty descriptive. This script consumes BMPs (Windows bitmaps) and WAVs (Microsoft AD-PCM Waveforms) to make an XviD (MPEG-4 video) movie.
#
# By convention, you pass it a directory with one or more directories that contain:
#
# * Frames named "frame_001.bmp", "frame_002.bmp", etc.
# * Audio named "audio.wav"
#
# Author: Benjamin Oakes
# FIXME: The audio doesn't get muxed correctly. The A/V sync is off a little. At the beginning it looks pretty okay, but by the end the mouths definitely don't match up with the words that are said.
#############################################################
# NOTE: SEE `ffmpeg -formats` for a list of available formats
#############################################################
# BMP_DIRECTORY_PATH="/home/ben/Outbox/ffmpeg.fixture/"
BMP_DIRECTORY_PATH="/media/Archival Data/Video Projects Backup/Video Projects/1080p_export_dual_gray/"
# Output settings
VTAG="xvid"
VCODEC="mpeg4"
ACODEC="libmp3lame"
DIMENSIONS="1000x562"
FPS="35"
CONTAINER="avi"
if [ -d "$BMP_DIRECTORY_PATH" ]; then
echo "BMP directory exists"
# for directory in "$BMP_DIRECTORY_PATH"/*
# do
directory="/media/Archival Data/Video Projects Backup/Video Projects/1080p_export_dual_gray/1"
ffmpeg \
-f image2 \
-i "$directory/frame_%03d.bmp" \
-vcodec mpeg1video \
-sameq \
\
-r $FPS \
"../tmp/$(basename "$directory.mpg")"
ffmpeg \
-i "../tmp/$(basename "$directory.mpg")" \
-vcodec $VCODEC \
-vtag $VTAG \
-s $DIMENSIONS \
-sameq \
\
-i "$directory/audio.wav" \
-acodec $ACODEC \
-ar 8000 \
\
-f $CONTAINER \
-r $FPS \
"../tmp/$(basename "$directory")-$VTAG-$VCODEC-$ACODEC-$DIMENSIONS-$FPS.$CONTAINER"
# done
else
echo "ERROR: BMP directory does not exist"
fi
업데이트 2
내가 일을하게 된 것에 대한 내 대답을 참조하십시오.
해결책 2
이것은 내가 다른 사람들의 참조를 위해 내가 끝난 것입니다.
# bmp+wav2xvid+mp3
#
# Although it has a cryptic name, it's pretty descriptive. This script consumes BMPs and WAVs to make an XviD (MPEG-4 video) movie.
#
# By convention, you pass it a directory with one or more directories that contain:
#
# * Frames named "frame_001.bmp", "frame_002.bmp", etc.
# * Audio named "audio.wav"
#
# Author: Benjamin Oakes
# Output settings
VTAG="xvid"
VCODEC="mpeg4"
ACODEC="libmp3lame"
ABITRATE="128k"
QSCALE="1"
DIMENSIONS="1000x562"
FPS="24000/1001"
CONTAINER="avi"
if [ -d "$BMP_DIRECTORY_PATH" ]; then
echo "BMP directory exists"
for directory in "$BMP_DIRECTORY_PATH"
do
ffmpeg \
-f image2 \
-r 24000/1001 \
-i "$directory/frame_%03d.bmp" \
\
\
-i "$directory/audio.wav" \
\
\
-vcodec $VCODEC \
-vtag $VTAG \
-qscale $QSCALE \
-s $DIMENSIONS \
-r $FPS \
\
-acodec $ACODEC \
-ab $ABITRATE \
\
"../tmp/$(basename "$directory").avi"
done
else
echo "ERROR: BMP directory does not exist"
fi
다른 팁
나는 당신이 한 번에 너무 많은 일을하려고한다고 생각합니다. 작업을 세 가지 개별 조치로 나누십시오.
- BMP 이미지에서 비디오를 만듭니다
- 오디오의 MUX
- 대상 형식으로 인코딩합니다
이를 위해 MPEG1을 중간 비디오 형식으로 사용하는 것이 좋습니다.
제휴하지 않습니다 StackOverflow