ffmpeg : 인터레이스 h.264 비디오를 만드는 방법?


1

고품질 비 인터레이스 입력 비디오를 품질은 떨어지지 만 배포 가능한 H.264 / MP4 형식으로 변환하고 싶습니다. 출력에는 몇 가지 제약이 있어야합니다. 특히 : 인터레이스 되어야합니다 !

mandelbrot고품질 입력의 동의어 인 다음 명령을 시도했습니다 .

ffmpeg -hide_banner \
    -t 10 -y \
    -f lavfi \
    -i anullsrc=r=48k:cl=stereo \
    -f lavfi \
    -i mandelbrot=r=50:size=1920x1080 \
    -vf 'interlace=scan=tff:lowpass=complex,format=yuv420p' \
    -codec:a aac \
    -b:a 128k \
    -aac_coder twoloop \
    -codec:v libx264 \
    -preset veryfast \
    -tune animation \
    -profile:v high \
    -crf 35 \
    -level 5.2 \
    -x264opts interlaced=1 \
    -shortest \
    mandelbrot.mp4

내 ffmpeg는 ffmpeg version 3.4.2-2입니다.

그러나 명령 줄이 올바른지 확실하지 않습니다.

  • libx264인터레이스 입력을 자체적으로 감지하지 않습니다. 삽입해야합니다 -x264opts interlaced=1.
  • 다른 자주 묻는 질문에 대해 이야기하십시오 -flags +ilme+ildct...

내 매개 변수를 확인할 수 있습니까? 대단히 감사합니다.


1
" 인터레이스되어야합니다 "... 왜? 인터레이스는 CRT 시대의 숙취로, 현대 세계에는 존재하지 않으며 정말 나빠 보입니다.
Attie

일반적으로 당신 말이 맞아 ... 나는 디지털 세상에서 모든 사람에게 진보를 추천한다 ... 그러나이 특별한 경우를 도전으로 삼아라 ... ;-)
Thomas R.

그렇다면 왜 인터레이스가 필요합니까? 그냥 궁금해서…
slhck

몇 가지 하드웨어 비디오 플레이어가 있다고 생각하십시오. 실제로 그들 중 일부는 기술 사양을 가지고 있습니다. 그런 다음 해당 설명서에 설명 된대로 비디오 파일을 추출하십시오. 그러나 플레이어는 재생을 거부합니다. 그렇기 때문에 프로그레시브 파일과 인터레이스 파일을 모두 생성하고 싶습니다.
Thomas R.

ffmpeg로 인터레이스 mp4 파일을 생성하는 데 몇 가지 문제가 있었고 많은 다른 매개 변수로 시도했습니다. 소프트웨어 플레이어에서 비디오가 올바르게 작동했지만 방송 중에 손상되었습니다. 지금은 모든 특정 세부 사항을 기억할 수는 없습니다. 심각한 응용 프로그램의 경우 실제 하드웨어에서 테스트 해야하는 경우 호환성을 보장하기 위해 독점 인코더가 필요할 수 있습니다.
Mikhail V

답변:


2

마침내 나는 훌륭한 결과를 얻었습니다.

ffmpeg \
 -y \
 -hide_banner \
 -i "${INPUT_FILE}" \
 \
 [... audio ...]\
 \
 -vf tinterlace=interleave_top,fieldorder=tff \
 -crf 28 \
 -preset placebo \
 [... more video ...]\
 -codec:v libx264 \
 \
 -f mp4 \
 -flags +ildct+ilme \
 [... more muxing ...]\
 \
 "${OUTPUT_FILE}"

1

ffmpeg를 통한 x264는 두 가지 방법으로 인터레이스 모드를 설정할 수 있습니다.

1) 개인 매개 변수를 통해 -x264opts(또는 -x264-params)interlaced=1

2) 또는 libavcodec 일반 플래그를 통해 -flags +ildct


1
따라서 인코더 특정 매개 변수를 줄이려면 ffmpeg -hide_banner -t 10 -y -f lavfi -i anullsrc=r=48k:cl=stereo -f lavfi -i mandelbrot=r=50:size=1920x1080 -vf 'interlace=scan=tff:lowpass=complex,format=yuv420p' -flags +ildct -codec:a aac -b:a 128k -aac_coder twoloop -codec:v libx264 -preset veryfast -tune animation -profile:v high -crf 35 -level 5.2 -shortest mandelbrot.mp4?를 사용해야합니다 .
Thomas R.

1
맞습니다.
Gyan

1
대단히 감사합니다. 나는 초보자이기 때문에 내 투표는 공개되지 않습니다 ... ;-(
Thomas R.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.