답변:
Windows에있는 경우 Windows Movie Maker에서도 할 수 있습니다 ... 지침이 필요한 경우 의견을 남겨주세요
FFmpeg의 경우 이것을 사용하십시오
ffmpeg -loop_input -vframes 14490 -i imagine.jpg -i audio.mp3 -y -r 30
-b 2500k -acodec ac3 -ab 384k -vcodec mpeg4 result.mp4
vframes 14490은 전체 audio.mp3 파일에 대해 연속적인 이미지를 얻기 위해 반복해야하는 프레임 수입니다.
예 : 8 분 3 초 동안 ((8m x 60s + 3s) x 30fps = 14490 vf)
여기 에서 자원
여기에 제안 된 것보다 훨씬 간단한 방법이 있습니다. 프레임 수를 계산하거나 개별 파일의 길이를 입력 할 필요가 없습니다 (특히 배치 처리에 더 좋습니다). 최신 버전의 ffmpeg를 사용하면 -shortest
가장 짧은 스트림이 끝날 때 인코딩을 중지 하는 옵션을 사용할 수 있습니다. 이 경우 input.mp3 (이미지가 영원히 반복되므로 길이가 무한하므로) :
ffmpeg -i input.mp3 -f image2 -loop 1 -r 2 -i input.jpg \
-shortest -c:a copy -c:v libx264 -crf 23 -preset veryfast output.mp4
이것은 이미지 / 비디오에 초당 2 프레임을 사용하지만 괜찮을 것이지만 원하는 경우 더 표준 25로 설정할 수 있습니다.
수반 키는 거의 옳았습니다. 작동하는 명령 행은 다음과 같습니다.
ffmpeg -y -loop 1 -i image.jpg -i audio.mp3 -r 30 -b:v 2500k -vframes 14490 -acodec libvo_aacenc -ab 160k result.mp4
프롬프트없이 출력 파일 덮어 쓰기
'-loop_input'옵션은 -loop 1을 사용하지 않습니다. ffmpeg 문서를 참조하십시오. . 입니다. .
입력 파일
초당 프레임
수는 다음과 같이 표현 될 수 있습니다. -r 30000/1001, fps 29.97nnn
비디오 비트 레이트; 숫자가 높을수록 품질이 좋아지고 파일 크기가 커집니다.
위에서 설명한대로; 오디오 파일의 총 시간을 초 단위로 취하십시오 (예 : 00:02:41 (2 분 41 초)는 총 161 초 (2 x 60) + 41)와 같습니다. 그런 다음 -r로 지정한 초당 프레임 수 (예 : 161 x 30 = 4830)에 총 초 수를 곱하십시오.
-vframe은 -t 161로 대체 할 수 있습니다 (-t 지속 시간 기록 또는 오디오 / 비디오의 "지속 시간"초 코드 변환)
작성중인 파일 유형에 맞는 올바른 오디오 코덱을 사용하십시오. .mp4의 경우 AAC 형식이어야합니다. 코덱 libvo_aacenc는 내 Windows 7 시스템에 올바른 인코딩 코덱이었습니다.
오디오 비트 레이트
이것은 출력 파일의 이름입니다. 시스템의 모든 유효한 파일 이름이 될 수 있습니다. 확장명은 -vcodec를 사용하여 지정하지 않은 경우 적절한 비디오 코덱을 결정하는 데 도움이됩니다.
디렉토리에있는 $ AUDIO 확장자의 모든 파일을 folder.jpg 이미지가 포함 된 디렉토리에있는 10FPS mp4 비디오 파일로 자동으로 인코딩하는 간단한 bash / cygwin 스크립트,
YouTube 업로드에 유용합니다.)
AUDIO=m4a;
$'\n'; for a in `ls -1 *.$AUDIO `; do ffmpeg -i $a &2> $a.info ; done;
cat '' > do.sh
IFS=$'\n';
for a in `ls -1 *.$AUDIO`; do D=`grep Duration $a.info | cut -d',' -f1 | cut -d' ' -f4 | cut -d'.' -f1 | head -n1 `; S=$(( $( echo $D | cut -d':' -f2 ) * 60 + 1 + ` echo $D | cut -d':' -f3 ` )) ; echo ffmpeg -loop_input -vframes $(( $S * 10 )) -i folder.jpg -i \"$a\" -y -r 10 -b 2500k -ab 384k -vcodec mpeg4 \"$a.mp4\" >> do.sh; done;
split -l5 do.sh
xa* &
VirtualDub를 다운로드 한 후 다음을 수행하십시오.
일반 비디오 파일을 여는 것처럼 이미지를 엽니 다.
오디오 지속 시간을 초 단위로 계산하고 가장 가까운 초 단위로 올림합니다 (예 : 78.34 초가 79 초가 됨). 이 값을 지금부터 x라고합니다.
"비디오> 프레임 속도"로 이동하여 "프레임 속도 (fps)로 변경"을 선택하고 값으로 "1 / x"를 입력하십시오. 또한 25fps와 같은 결과 파일에 일반 프레임 속도를 유지하려면 "fps로 변환"을 선택하고 원하는 프레임 속도를 입력하십시오.
"비디오> 압축"을 선택하고 좋아하는 맛을 선택하십시오. 크기 조정 필터를 사용하여 이미지의 크기를 조정해야 할 수도 있습니다.
"오디오> 다른 파일의 오디오"로 이동하여 오디오를 선택하십시오. 필요한 경우 오디오 압축을 선택하십시오.
파일을 저장하십시오.
출처 : stephanV