Перекодируйте 4K-видео в H.265 / HEVC с помощью FFmpeg для воспроизведения в QuickTime

3133
rgov

У меня есть одночасовое видео 4K, которое весило 10 ГБ. Я подумал, что попробую перекодировать в HEVC с помощью FFmpeg, чтобы сэкономить место, чего я раньше не пробовал.

Тем не менее, я переключил формат контейнера с .m4v на .mp4, что я не понимал, что QuickTime Player не может играть; он поддерживает только потоки HEVC внутри контейнеров .mov. VLC может воспроизводить .mp4, поэтому преобразование, похоже, прошло успешно.

Поэтому я попытался изменить формат контейнера на .mov, но QuickTime по-прежнему не хочет его открывать.

Есть ли дополнительный шаг, который я пропускаю? Конвертация прошла в одночасье, поэтому я бы не стал делать это снова, если есть способ просто поменять контейнер.

$ ffmpeg -i otomatsuri.m4v -c: v libx265 -preset medium -crf 28 -c: aac -b: 128k otomatsuri.mp4 ffmpeg версия 3.4.1 Copyright (c) 2000-2017 разработчики FFmpeg построен с использованием Apple LLVM версии 9.1.0 (clang-902.0.30) конфигурация: --prefix = / usr / local / Cellar / ffmpeg / 3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc = clang --host-cflags = --host-ldflags = --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable -lzma libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Введите # 0, mov, mp4, m4a, 3gp, 3g2, mj2, из 'otomatsuri.m4v': Метаданные: Major_brand: M4V  minor_version: 1 Совместимые бренды: M4V M4A mp42isom Время создания: 2018-02-09T09: 37: 48.000000Z кодировщик: Lavf57.83.100 Продолжительность: 00: 53: 53.00, старт: 0.000000, битрейт: 24377 кбит / с Поток # 0: 0 (und): Аудио: aac (LC) (mp4a / 0x6134706D), 32000 Гц, моно, fltp, 95 кбит / с (по умолчанию) Метаданные: Время создания: 2018-02-09T09: 37: 48.000000Z имя обработчика: Core Media Audio Поток # 0: 1 (und): Видео: h264 (High) (avc1 / 0x31637661), yuv420p, 2880x2160 [SAR 4: 3 DAR 16: 9], 24278 кбит / с, 24 кадра в секунду, 24 тб, 60 тыс. Тбит, 48 TBC (по умолчанию) Метаданные: Время создания: 2018-02-09T09: 37: 48.000000Z имя обработчика: Core Media Video Отображение потока: Поток # 0: 1 -> # 0: 0 (h264 (собственный) -> hevc (libx265)) Поток # 0: 0 -> # 0: 1 (aac (собственный) -> aac (собственный)) Нажмите [q], чтобы остановить, [?] Для помощи x265 [info]: кодер HEVC версии 2.6 x265 [info]: информация о сборке [Mac OS X] [clang 9.0.0] [64 бит] 8 бит + 10 бит + 12 бит x265 [информация]: использование возможностей процессора: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 x265 [info]: Основной профиль, Уровень 5 (Основной уровень) x265 [info]: Пул потоков создан с использованием 4 потоков x265 [info]: ломтики: 1 x265 [info]: каркасные потоки / функции пула: 2 / wpp (34 строки) x265 [info]: код QT: максимальный размер CU, минимальный размер CU: 64/8 x265 [info]: Остаточный QT: максимальный размер TU, максимальная глубина: 32/1 inter / 1 intra x265 [info]: ME / range / subpel / merge: hex / 57/2/2 x265 [info]: ключевой кадр мин / макс / сцена / уклон: 24/250/40 / 5.00 x265 [info]: Lookahead / bframes / badapt: ​​20/4/2 x265 [info]: b-пирамида / weightp / weightb: 1/1 / 0 x265 [info]: References / ref-limit cu / глубина: 3 / вкл / вкл x265 [info]: AQ: mode / str / qg-size / cu-tree: 1 / 1.0 / 32/1 x265 [info]: Контроль скорости / qCompress: CRF-28.0 / 0.60 x265 [info]: tools: rd = 3 psy-rd = 2.00 rskip signhide tmvp strong-intra-smoothing x265 [info]: tools: lslices = 8 deblock sao Выведите # 0, mp4, в 'otomatsuri.mp4': Метаданные: Major_brand: M4V  minor_version: 1 Совместимые бренды: M4V M4A mp42isom кодировщик: Lavf57.83.100 Поток # 0: 0 (und): Видео: hevc (libx265) (hev1 / 0x31766568), yuv420p, 2880x2160 [SAR 4: 3 DAR 16: 9], q = 2-31, 24 кадра в секунду, 12288 тбит, 24 т / с ( дефолт) Метаданные: Время создания: 2018-02-09T09: 37: 48.000000Z имя обработчика: Core Media Video кодировщик: Lavc57.107.100 libx265 Поток # 0: 1 (und): Аудио: aac (LC) (mp4a / 0x6134706D), 32000 Гц, моно, fltp, 128 кбит / с (по умолчанию) Метаданные: Время создания: 2018-02-09T09: 37: 48.000000Z имя обработчика: Core Media Audio кодировщик: Lavc57.107.100 aac frame = 77592 fps = 2,8 q = -0,0 Lsize = 1670478kB время = 00: 53: скорость передачи 52,93 = 4232,9 кбит / с, скорость = 0,117x  видео: 1624946 КБ, аудио: 43103 КБ, субтитры: 0 КБ, другие потоки: 0 КБ, глобальные заголовки: 2 КБ, издержки мультиплексирования: 0,145604% x265 [информация]: кадр I: 738, средняя QP: 25,05 кбит / с: 9283,77  x265 [информация]: кадр P: 20942, средняя QP: 27,55 кбит / с: 6165,77  x265 [информация]: кадр B: 55912, средняя QP: 31,10 кбит / с: 3280,92  x265 [информация]: Взвешенные P-кадры: Y: 21,5% UV: 15,2% x265 [информация]: последовательные B-кадры: 7,8% 10,9% 15,9% 46,2% 19,1%   закодировано 77592 кадра в 27541,51 с (2,82 к / с), 4116,63 кбит / с, средняя QP: 30,09 [aac @ 0x7fd6d7801e00] Qavg: 58695.016 
$ ffmpeg -i otomatsuri.mp4 -c copy -map 0 otomatsuri.mov ffmpeg версия 3.4.1 Copyright (c) 2000-2017 разработчики FFmpeg построен с использованием Apple LLVM версии 9.1.0 (clang-902.0.30) конфигурация: --prefix = / usr / local / Cellar / ffmpeg / 3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc = clang --host-cflags = --host-ldflags = --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable -lzma libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Введите # 0, mov, mp4, m4a, 3gp, 3g2, mj2, из 'otomatsuri.mp4': Метаданные: major_brand: isom несовершеннолетняя_версия: 512 compatibility_brands: isomiso2mp41 кодировщик: Lavf57.83.100 Продолжительность: 00: 53: 53.00, старт: 0.000000, битрейт: 4232 кбит / с Поток # 0: 0 (und): Видео: hevc (Main) (hev1 / 0x31766568), yuv420p (tv, прогрессивный), 2880x2160 [SAR 4: 3 DAR 16: 9], 4117 кбит / с, 24 кадра в секунду, 24 tbr, 12288 тбн, 24 тбк (по умолчанию) Метаданные: имя обработчика: VideoHandler Поток # 0: 1 (und): Аудио: aac (LC) (mp4a / 0x6134706D), 32000 Гц, моно, fltp, 109 кбит / с (по умолчанию) Метаданные: имя обработчика: SoundHandler Выведите # 0, mov, to 'otomatsuri.mov': Метаданные: major_brand: isom несовершеннолетняя_версия: 512 compatibility_brands: isomiso2mp41 кодировщик: Lavf57.83.100 Поток # 0: 0 (und): Видео: hevc (Main) (hev1 / 0x31766568), yuv420p (tv, прогрессивный), 2880x2160 [SAR 4: 3 DAR 16: 9], q = 2-31, 4117 кбит / с, 24 к / с, 24 тбр, 12288 тбн, 12288 тбк (по умолчанию) Метаданные: имя обработчика: VideoHandler Поток # 0: 1 (und): Аудио: aac (LC) (mp4a / 0x6134706D), 32000 Гц, моно, fltp, 109 кбит / с (по умолчанию) Метаданные: имя обработчика: SoundHandler Отображение потока: Поток № 0: 0 -> # 0: 0 (копия) Поток № 0: 1 -> # 0: 1 (копия) Нажмите [q], чтобы остановить, [?] Для помощи кадр = 77592 кадр / с = 18819 q = -1,0 Lsize = 1670479 кБ время = 00: 53: скорость передачи данных 52,90 = скорость 4232,9 кбит / с = скорость 784x  видео: 1624946 КБ, аудио: 43103 КБ, субтитры: 0 КБ, другие потоки: 0 КБ, глобальные заголовки: 2 КБ, накладные расходы на мультиплексирование: 0,145614% 
0
Это может быть просто проблема тега кодека. Попробуйте `ffmpeg -i otomatsuri.mp4 -c copy -map 0 -vtag hvc1 otomatsuri.mov` Gyan 6 лет назад 1
@Mulvya Да, это так. Хотите опубликовать как ответ, чтобы я мог принять это? rgov 6 лет назад 0

1 ответ на вопрос

2
Gyan

Некоторые проигрыватели используют метаданные, чтобы определить, можно ли использовать содержимое файла. QT относится к этой категории. Как подтверждается в комментариях, назначение тега кодека hvc1позволяет воспроизводить в QT,

ffmpeg -i otomatsuri.mp4 -c copy -map 0 -vtag hvc1 otomatsuri.mov 
И я думаю, что все-в-одном преобразование это: `ffmpeg -i tomatina.m4v -c: v libx265 -preset medium -crf 28 -vtag hvc1 -c: aac -b: 128k tomatina.mov` rgov 6 лет назад 0

Похожие вопросы