질문

질문

질문

2개의 파일이 있습니다.

  • audio.opus(연장도 가능합니다 .opus.ogg:)
  • cover.jpg.

이것을 삽입된 "표지" 이미지로 어떻게 ffmpeg넣을 수 있나요 ?cover.jpgaudio.opus

제한

  • 오디오를 다시 인코딩하고 싶지 않습니다(불행히도 opusenc --picture범위를 벗어난 것 같습니다).
  • 이미지(jpeg)를 다시 인코딩하고 싶지는 않지만 큰 문제는 아니지만,
  • 이미지를 동영상으로 변환하고 싶지 않아요(!)
  • ffmpeg저는 이 작업을 수행하기 위해 다른 도구 대신 사용하는 것을 선호합니다 .
  • 나는 mp3를 듣고 싶지 않아요.

예상되는 결과

올바르게 완료되면 다음과 같아야 합니다.

$ opusinfo audio_with_cover.opus
Processing file "audio_with_cover.opus"...

New logical stream (#1, serial: 39a74bbb): type opus
Encoded with libopus 1.3.1
User comments section follows...
    ENCODER=opusenc from opus-tools 0.1.10
    METADATA_BLOCK_PICTURE=3|image/jpeg||1280x720x24|<45952 bytes of image data>
    ENCODER_OPTIONS=--bitrate 56
Opus stream 1:
    Pre-skip: 312
    [...]

또는 다음에서 ffprobe:

$ ffprobe audio_with_cover.opus 
[ogg @ 0x55675650ca80] 761 bytes of comment header remain
Input #0, ogg, from 'audio_with_cover.opus':
  Duration: 00:02:25.64, start: 0.000000, bitrate: 71 kb/s
  Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
    Metadata:
      ENCODER         : opusenc from opus-tools 0.1.10
      ENCODER_OPTIONS : --bitrate 56
  Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 1280x720, 90k tbr, 90k tbn (attached pic)
    Metadata:
      comment         : Cover (front)

불가능한?

이것이 불가능하다는 것을 아시는 경우 알려주시면 에 기능 요청을 개설하겠습니다 ffmpeg.

답변1

간단하게 작동하는 솔루션을 찾을 수 없어서 사용하기 쉬운 opus 태그 편집기를 사용 ffmpeg했습니다 . opustags배포판 opustags이나 sudo apt install opustags이와 유사한 것에 설치됩니다.
표지 아트를 추가하려면 명령을 사용하여 opustags --set-cover cover.jpg audio.opus -iopus 파일에 표지 아트를 빠르게 추가합니다.
빠른 보너스로 Extract Cover Art를 사용할 수 있습니다 opustags --output-cover cover.jpg audio.opus.

두 번째 해결책

내가 작업 솔루션이라고 말할 때 ffmpegJPEG 파일을 다시 인코딩하지 않는다는 뜻이지만 그다지 신경 쓰지 않아도 됩니다. ffmpeg이미지를 다시 인코딩하지만 OPUS 파일은 유지하는 솔루션을 찾았습니다 . 이미지를 다시 인코딩할 때의 단점은 표지 아트의 품질이 극도로 압축된다는 것입니다. JPEG 이미지의 품질을 향상시킬 수 있는 방법을 찾을 수 없습니다. 명령은 다음과 같습니다 ffmpeg -i audio.ogg -i cover.jpg -c:a copy -disposition attached_pic audio_1.ogg.

두 번째 솔루션 편집

솔루션에 대해 더 높은 품질의 썸네일을 만들려면 ffmpegTheora 파일로 변환된 이미지의 CRF를 2로 설정하고 를 사용할 수 있습니다 ffmpeg -i audio.ogg -i cover.jpg -c:a copy -q:v 2 -disposition attached_pic audio_1.ogg. Theora 파일은 손실이 있으므로 이 명령을 사용할 때 썸네일은 항상 원본 파일과 동일합니다. .

답변2

-metadata:s:a METADATA_BLOCK_PICTURE=...다음을 사용하여 이미지 데이터를 수동으로 추가 할 수 있습니다 .Xiph Vorbis 주석 구조.

먼저 일치하는 헤더 블록(이미지 크기 등이 동일하게 유지되는 경우 재사용 가능)을 생성한 다음 이를 Base64로 인코딩된 이미지 데이터와 연결해야 합니다.

자세한 내용은 다음을 참조하세요.https://superuser.com/a/1816195/1860118

관련 정보