ffmpeg : 이미지에서 비디오를 생성하면 단 1초의 비디오가 생성됩니다.

ffmpeg : 이미지에서 비디오를 생성하면 단 1초의 비디오가 생성됩니다.

ffmpeg를 사용하여 Windows 컴퓨터에서 단일 이미지로 5초 동안 짧은 비디오 파일을 만들려고 합니다. 비디오 파일은 1920x1080 60fps를 생성하는 카메라로 촬영한 비디오 파일 앞에서 연결하는 데 사용됩니다. 다음은 5초 스트림 대신 1초 스트림을 생성합니다. 어떤 아이디어가 있나요? 미리 감사드립니다.

"c:\program files\ffmpeg\ffmpeg32" -f image2 -i "c:\program files\ffmpeg\imput1.jpg" -loop 1 -vcodec mpeg1video -b:v 104857200 -r 59.94 -s 1920x1080 -aspect 16:9 -t 5 "c:\program files\ffmpeg\banner.MPG"

내 출력 결과는 다음과 같습니다.

<pre>c:\Program Files\ffmpeg>"c:\program files\ffmpeg\ffmpeg32" -f
image2 -i "input1.jpg" -loop 1 -vcodec mpeg1video -b:v 10 4857200 -r
59.94 -s 1920x1080 -aspect 16:9 -t 5 "c:\program files\ffmpeg\banner. MPG" ffmpeg version N-52045-g694fa00 Copyright (c) 2000-2013 the
FFmpeg developers built on Apr 12 2013 16:54:51 with gcc 4.8.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-av isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp e --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrn b --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libr tmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheo ra --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --ena ble-zlib 
55. 0.100 libavfilter 3. 53.101 / 3. 53.101 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 3.100 / 52. 3.100 Input #0, image2, from 'c:\program files\ffmpeg\input1.jpg': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0:0:
Video: mjpeg, yuvj420p, 722x267 [SAR 1:1 DAR 722:267], 25 tbr, 25 tbn,
25 tbc File 'c:\program files\ffmpeg\banner.MPG' already exists.
Overwrite ? [y/N] y VBV buffer size not set, muxing may fail Output
#0, mpeg, to 'c:\program files\ffmpeg\banner.MPG': Metadata: encoder : Lavf55.2.100 Stream #0:0: Video: mpeg1video, yuv420p, 1920x1080 [SAR
1:1 DAR 16:9], q=2-3 1, 104857 kb/s, 90k tbn, 59.94 tbc Stream
mapping: Stream #0:0 -> #0:0 (mjpeg -> mpeg1video) Press [q] to stop,
[?] for help frame= 1 fps=0.0 q=9.8 Lsize= 130kB time=00:00:00.01
bitrate=63812.1kbits /s video:130kB audio:0kB subtitle:0 global
headers:0kB muxing overhead 0.373990%

c:\Program Files\ffmpeg>> libavutil 52. 26.100 / 52. 26.100 libavcodec 55. 2.100 / 55. 2.100
libavformat 55. 2.100 / 55. 2.100 libavdevice 55. 0.100 /
</pre>

업데이트: 다음 작업을 위한 5초짜리 비디오를 얻었지만 비디오가 새로 만든 비디오와 연결되지 않습니다. 나는 이것이 아마도 새로운 질문을 보장한다고 생각합니다.

"c:\program files\ffmpeg\ffmpeg32" -loop 1 -i graphic.jpg -s 1920x1080 -aspect 16:9 -t 5 -c:v libx264 banner.mp4 

답변1

-loop옵션은 다음 입력 파일에 적용되므로 귀하의 경우에는 구문 분석되지 않을 수 있습니다. 이것을 시도해 보세요. 간결함을 위해 다른 옵션은 생략했습니다.

ffmpeg -loop 1 -i input.jpg -t 5 output.mp4

몇 가지 팁:

  • ffmpeg 버전이 이미 약간 구식입니다. 항상 사용해 보세요최근 빌드뭔가 실패하면.

  • -f image2JPG 이미지는 자동으로 디먹서로 구문 분석되므로 불필요합니다 image2.

  • 실제 일정한 비트 전송률을 얻으려면 , 및 세 가지를 -b:v모두 동일한 값으로 설정해야 한다고 생각합니다 .-minrate-maxrate

  • mpeg1video요즘에는 일반적으로 MPEG-1 비디오(ffmpeg의 인코더)를 사용하고 싶지 않습니다. 특히 HD 콘텐츠에는 적합하지 않습니다. 제한된 비트 전송률로 인해 파일 크기가 커지거나 품질이 매우 나빠지게 됩니다. 매우 큰 비트 전송률을 지정했지만(정말 원하는 것인가요?) 최소한 MPEG-2 비디오나 MPEG-4 Part 12(AVC, H.264)를 사용하는 것이 더 나을 수도 있습니다. 참조x264 인코딩 가이드일부 옵션의 경우.

관련 정보