오디오와 하나의 이미지 / 프레임으로 만 구성된 비디오를 효율적으로 인코딩

Nov 13 2020

하나의 이미지와 오디오 트랙 만있는 비디오가 있습니다. 매우 크고 작게 만들고 싶습니다. 하나의 이미지 / 프레임 만 있기 때문에 모든 프레임에 이미지를 복사하는 대신이 프레임 하나만 저장하고 표시하면 더 효율적이라고 생각합니다. 리눅스에서 ffmpeg로 어떻게 그런 비디오를 만들 수 있습니까?

지금까지 명령을 사용했습니다.

ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4

크기를 크게 줄였습니다. 어떻게하는지 잘 모르겠지만 결과가 오디오 트랙 (비교를 위해 추출한 것)만큼 작기 때문에 condec이 좋은 선택 인 것 같습니다.

그러나 변형에 너무 많은 시간이 걸리고 변형하고 싶은 다른 비디오가 몇 개 있습니다. 프로세스 속도를 높이거나 다른 명령을 선택하는 방법이 있습니까?

예를 들어, ffmpeg에게 그것이 단지 하나의 이미지이고 n 번째 프레임을 사용해야하고 나머지를 인코딩하는 데 신경 쓰지 않아야한다고 말할 수 있을지 생각하고 있습니다.


편집 : Баяр Гончикжапов의 아이디어를 사용하면 다음 명령이 사용됩니다.

file="input.mp4"
ffmpeg -i "$file" -f image2 -frames:v 1 /tmp/tmp.jpg
ffmpeg -i "$file" -i /tmp/tmp.jpg -map 0:a -map 1:v -c:a copy -c:v copy output.mp4

$ mediainfo "$file"         
General
Complete name                            : 1 Hour Epic Music _ Best Of Two Steps From Hell Voll. III.mp4
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42
File size                                : 134 MiB
Duration                                 : 1h 0mn
Overall bit rate mode                    : Variable
Overall bit rate                         : 308 Kbps
Encoded date                             : UTC 2013-11-28 04:41:00
Tagged date                              : UTC 2013-11-28 04:41:00
gsst                                     : 0
gstd                                     : 3648063
gssd                                     : B5CC58185HH1408390296880239
gshh                                     : r2---sn-9nj-q0ne.googlevideo.com

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Baseline@L3
Format settings, CABAC                   : No
Format settings, ReFrames                : 1 frame
Format settings, GOP                     : M=1, N=60
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 1h 0mn
Bit rate                                 : 210 Kbps
Maximum bit rate                         : 2 389 Kbps
Width                                    : 640 pixels
Height                                   : 360 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 24.000 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.038
Stream size                              : 91.3 MiB (68%)
Encoded date                             : UTC 1904-01-01 00:00:00
Tagged date                              : UTC 2013-11-28 04:41:19

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 1h 0mn
Bit rate mode                            : Variable
Bit rate                                 : 96.0 Kbps
Maximum bit rate                         : 102 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 KHz
Compression mode                         : Lossy
Stream size                              : 41.7 MiB (31%)
Title                                    : IsoMedia File Produced by Google, 5-11-2011
Encoded date                             : UTC 2013-11-28 04:41:10
Tagged date                              : UTC 2013-11-28 04:41:19


$ mediainfo /tmp/output.mp4 
General
Complete name                            : /tmp/output2.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom
File size                                : 42.4 MiB
Duration                                 : 1h 0mn
Overall bit rate mode                    : Constant
Overall bit rate                         : 97.4 Kbps
Encoded date                             : UTC 1904-01-01 00:00:00
Tagged date                              : UTC 1904-01-01 00:00:00
Writing application                      : Lavf57.83.100

Video
ID                                       : 2
Format                                   : JPEG
Codec ID                                 : 6C
Duration                                 : 40ms
Bit rate mode                            : Constant
Bit rate                                 : 4 215 Kbps
Width                                    : 640 pixels
Height                                   : 360 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 25.000 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Compression mode                         : Lossy
Bits/(Pixel*Frame)                       : 0.732
Stream size                              : 20.6 KiB (0%)
Encoded date                             : UTC 1904-01-01 00:00:00
Tagged date                              : UTC 1904-01-01 00:00:00

Audio
ID                                       : 1
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 1h 0mn
Bit rate mode                            : Constant
Bit rate                                 : 96.0 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 KHz
Compression mode                         : Lossy
Stream size                              : 41.7 MiB (99%)
Encoded date                             : UTC 1904-01-01 00:00:00
Tagged date                              : UTC 1904-01-01 00:00:00
  • 그러나 알 수 있듯이 오디오는 실제로 복사되지 않았습니다. 오디오가 실제로 복사되었는지 어떻게 확인할 수 있습니까?
  • 또한 VLC Player에는 문제가 있습니다. 비디오를 시작할 때 슬라이드 (시간을 나타내는)가 움직이지 않습니다. 00:00 이상으로 이동하면 다시 이동합니다 ...
  • 첫 번째 프레임과 다른 프레임을 추출하고 싶다고 어떻게 말합니까?

답변

БаярГончикжапов Nov 14 2020 at 07:06

하나의 비디오 프레임을 임시 파일로 변환 한 다음 임시 파일을 오디오와 결합합니다.

ffmpeg -i input.mp4 -frames:v 1 -map 0:v -c:v libx265 -crf 18 -y tmp.mp4
ffmpeg -i input.mp4 -i tmp.mp4 -map 0:a -map 1 -c:a copy -c:v copy -y output.mp4

이 라인은 VLC 플레이어와 호환되지 않는 비디오를 만듭니다. 따라서 MP3로 변환하는 옵션을 제안합니다.

ffmpeg -i input.mp4 -f image2 -frames:v 1 -y /tmp/tmp.jpg
ffmpeg -i input.mp4 -i /tmp/tmp.jpg -map 0:a -map 1 -c:a libmp3lame -c:v copy -y /tmp/output.mp3
vlc /tmp/output.mp3