제 경우를 도와주세요. ffmpeg에 문제가 있습니다. 다음 명령을 사용합니다.
ffmpeg -i whiskey.mkv -threads 0 -c:v libx264 -crf 28 -preset veryslow -vf "movie=logo.png[wm];[in][wm]overlay=0:0,subtitles=whiskey.srt[out]" whiskey2.mp4
하지만 오류가 발생
root@:~/ffmpeg# ffmpeg -i whiskey.mkv -threads 0 -c:v libx264 -crf 2
8 -preset veryslow -vf "movie=logo.png[wm];[in][wm]overlay=0:0,subtitles=whiskey
.srt[out]" whiskey2.mp4
ffmpeg version N-80522-ge0faad8 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration:
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 46.100 / 57. 46.100
libavformat 57. 38.102 / 57. 38.102
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 46.102 / 6. 46.102
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
Unrecognized option 'crf'.
Error splitting the argument list: Option not found
품질 손실 없이 워터마크 + 하위 인코딩 명령이 있으면 알려주세요.
답변1
libx264 지원 없음
libx264 인코더를 사용하려고 하지만 ffmpeg
이 인코더를 지원하도록 구성되지 않았습니다. 귀하의 configure
행은 비어 있지만 libx264를 사용하려면 --enable-libx264
& 가 필요합니다.--enable-gpl
이 문제를 해결하는 가장 쉬운 방법은 다음과 같습니다.정적 빌드 다운로드ffmpeg
: libx264를 지원합니다.
"품질 손실" 없음
필터링하려면 다시 인코딩해야 하지만 손실이 있는 출력을 만드는 옵션을 사용하려고 합니다.
품질 손실을 정말로 원하지 않는다면 무손실 출력을 해야 하지만 대부분의 사용자는 파일이 거대하고 모든 플레이어/장치가 이를 지원하지 않을 수 있기 때문에 이를 원하지 않습니다. libx264를 사용하는 무손실 출력의 경우 -crf 0
.
실제로 원하는 것은 손실이 있지만 기술적으로 무손실이 아니라고 말할 수 없을 만큼 품질이 좋은 것입니다. 이를 위해 -crf 18
.
귀하의 명령에는 불필요한 추가 옵션이 있습니다. 정리된 예는 다음과 같습니다.
ffmpeg -i whiskey.mkv -i logo.png -filter_complex \
"[0:v][1:v]overlay,subtitles=whiskey.srt" \
-c:v libx264 -crf 18 -preset veryslow output.mp4
입력 오디오가 MP4 컨테이너와 호환되는 경우 -c:a copy
추가스트림 복사오디오를 다시 인코딩하는 대신