mp4 비디오 파일의 ogg 오디오 파일과 srt 자막 파일의 자막이 전체 화면을 차지하도록 하는 방법은 무엇입니까?

mp4 비디오 파일의 ogg 오디오 파일과 srt 자막 파일의 자막이 전체 화면을 차지하도록 하는 방법은 무엇입니까?

stack*** 포럼과 기타 인터넷 리소스 덕분에 단 두 단계만으로 ogg 파일의 mp4 파일을 삽입하고 srt 파일의 자막을 삽입할 수 있습니다.

먼저 흰색 자막의 배경으로 검은색 png 파일을 만듭니다. 그런 다음 오디오가 사진 1개와 병합되어 mp4 파일이 생성됩니다.

ffmpeg -loop 1 -i 1.png -i input.ogg -shortest output.mp4

두 번째 라운드에서는 mp4 파일을 사용하고 자막을 파일에 하드 임베딩합니다.

ffmpeg -i output.mp4 -vf subtitles=input.srt out.mp4

나의 다음 목표는 이 두 단계를 하나로 결합하는 것입니다. 특히 인터넷에는 다음과 같은 자료가 있습니다.리눅스 자막 ffmpeg, 다음에서 코드를 받았습니다.

ffmpeg -i input.ogg -loop 1 -i 1.png -c:v libx264 -r 24000/1001 -vf "srt='input.srt'" -pix_fmt yuv240p -c:a copy -map 1:v -map 0:a -shortest output.mp4

잘못된:

ffmpeg version 4.3.5-0+deb11u1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, ogg, from 'input.ogg':
  Duration: 00:09:56.73, start: 0.000000, bitrate: 53 kb/s
    Stream #0:0: Audio: vorbis, 44100 Hz, mono, fltp, 140 kb/s
Input #1, png_pipe, from '1.png':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: png, rgba(pc), 639x288, 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'output.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #1:0 -> #0:0 (png (native) -> h264 (libx264))
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[AVFilterGraph @ 0x5623a8c54480] No such filter: 'srt'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #1:0
Conversion failed!

위의 코드 줄을 올바르게 수정하면 전문가가 직면한 문제를 쉽게 해결할 수 있을 것이라고 믿습니다.

하지만 내 최종 목표는 여전히 그 이상입니다. 내 입력 콘텐츠 파일은 단순한 오디오 파일이므로 자막이 화면 하단뿐만 아니라 전체 화면에 배포되기를 원합니다.

YouTube에서 이와 같은 동영상을 본 적이 있지만 현재 리소스와 코드를 찾을 수 없습니다.

관련 정보