У меня есть этот видеофайл mkv длиной 3 часа, который имеет смешной размер даже для разрешения 1080p (более 30 гигов), поэтому я хочу немного его уменьшить. Глядя на видеоинформацию о smplayer, он говорит, что его формат - MPG2, а кодек - FFmpeg. Битрейт огромен: более 20к. Это объясняет размер файла, я думаю. Аудиокодек PCM.

Поэтому я попытался - чтобы максимально уменьшить размер - преобразовать его в H264 MP4, одновременно снижая скорость передачи данных и разрешение, а также качество звука, используя следующую команду:

ffmpeg -i inputfile.mkv -vcodec h264 -vf scale=1600:900 -b:v 6000k -acodec aac -b:a 128k -ar 44100 outputfile.mp4

Я использую версию FFmpeg 3.3.6. Раньше у меня не было проблем с перекодированием других форматов в h264, и результирующий выходной файл воспроизводится хорошо ... Сначала изменение качества видео почти незаметно, то же самое касается качества звука, плюс размер файла выглядит разумным. изображение и аудио синхронизируются. Хорошо.

Теперь проблема в том, что движение немного медленнее, чем исходный файл. Достаточно медленнее, чтобы быть заметным и раздражать меня. Я не могу объяснить, почему видео имеет одинаковую длину. Дело не в том, что выходной файл имеет более низкий FPS или что-то еще.

Поэтому я надеюсь, что вы можете дать мне совет, как правильно конвертировать этот конкретный формат ввода? Я также попытался снизить битрейт исходного файла, не меняя его формат, но получающееся видео выглядело ужасно, а его размер все еще был огромным.

edit: добавлены показания ffprobe для входного и выходного файлов. Курсив выделен синим цветом, жирный - красным на моей консоли.

$ ffprobe inputfile.mkv
ffprobe версия 3.3.6 Copyright (c) 2007-2017 разработчики FFmpeg
собран с gcc 6.3.0 (Debian 6.3.0-18) 20170516
конфигурация: --disable-decoder = amrnb --disable-decoder = libopenjpeg --disable-mips32r2 --disable-mips32r6 --disable-mips64r6 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable- msa --disable-libopencv --disable-podpages --disable-striping --enable-avfilter --enable-avresample --enable-gcrypt --enable-gnutls --enable-gpl --enable-libass --enable- libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable- libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm - enable-libilbc --enable-libkvazaar --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable- libopus --enable -libpulse --enable-librubberband --enable-libshine --enable- libsnappy --enable-libsoxr --enable-libspeex --enable-libtesseract --enable- libtheora --enable-libvidstab --enable-libvo-amrwbenc - -enable-libvorbis --enable-libvpx --enable-libx265 --enable-libxvi d --enable-libzvbi --enable- несвободный --enable-opengl --enable-openssl --enable-postproc --enable-pthreads --enable-shared --enable-version3 --incdir =/usr/include/x86_64-linux-gnu --libdir =/usr/lib/x86_64-linux-gnu --prefix =/usr --toolchain = усиленный --enable-frei0r --enable-chromaprint --enable-libx264 --enable-libiec61883 --enable-libdc1394 --enable-vaapi --disable-opencl --enable-libmfx --disable- altivec --shlibdir =/usr/lib/x86_64-linux-gnu
libavutil 55. 58.100 / 55. 58,100
libavcodec 57. 89,100 / 57. 89,100
libavformat 57. 71,100 / 57. 71,100
libavdevice 57. 6.100 / 57. 6,100
libavfilter 6. 82,100 / 6. 82,100
libavresample 3. 5. 0/3. 5. 0
libswscale 4. 6.100 / 4. 6,100
libswresample 2. 7.100 / 2. 7,100
libpostproc 54. 5.100 / 54. 5,100
[mpeg2video @ 0x78df96dec0] игнорирование pic cod ext после 0
Ввод # 0, matroska, webm, из 'inputfile.mkv': Метаданные: кодировщик: libebml v1.3.0 + libmatroska v1.4.1 creation_time: 2014-05-22T01: 36: 37.000000Z Продолжительность: 03: 10: 45.71, начало: 0,000000, битрейт: 22858 кбит / с Поток № 0: 0: видео: mpeg2video (основной), yuv420p (телевидение, bt709, сверху вверх), 1920x1080 [SAR 1: 1 DAR 16: 9], 22200 кбит / с, 59,94 к / с , 59,94 тбр, 1 тыс тбн, 59,94 тбк (по умолчанию) Поток № 0: 1 (англ): аудио: pcm_s16le, 48000 Гц, 2 канала, s16, 1536 кб / с (по умолчанию)

$ ffprobe outputfile.mp4
ffprobe версия 3.3.6 Copyright (c) 2007-2017 разработчики FFmpeg
собран с gcc 6.3.0 (Debian 6.3.0-18) 20170516
конфигурация: --disable-decoder = amrnb --disable-decoder = libopenjpeg --disable-mips32r2 --disable-mips32r6 --disable-mips64r6 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable- msa --disable-libopencv --disable-podpages --disable-striping --enable-avfilter --enable-avresample --enable-gcrypt --enable-gnutls --enable-gpl --enable-libass --enable- libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm - enable-libilbc --enable-libkvazaar --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable -libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc - -enable-libvorbis --enable-libvpx --enable-libx265 --enable-libxvid --e nable-libzvbi --enable-несвободный --enable-opengl --enable-openssl --enable-postproc --enable-pthreads --enable-shared --enable-version3 --incdir =/usr/include/x86_64-linux -gnu --libdir =/usr/lib/x86_64-linux-gnu --prefix =/usr --toolchain = усиленный --enable-frei0r --enable-chromaprint --enable-libx264 --enable-libiec61883 --enable -libdc1394 --enable-vaapi --disable-opencl --enable-libmfx --disable-altivec --shlibdir =/usr/lib/x86_64-linux-gnu
libavutil 55. 58.100 / 55. 58,100
libavcodec 57. 89,100 / 57. 89,100
libavformat 57. 71,100 / 57. 71,100
libavdevice 57. 6.100 / 57. 6,100
libavfilter 6. 82,100 / 6. 82,100
libavresample 3. 5. 0/3. 5. 0
libswscale 4. 6.100 / 4. 6,100
libswresample 2. 7.100 / 2. 7,100
libpostproc 54. 5.100 / 54. 5,100
Введите # 0, mov, mp4, m4a, 3gp, 3g2, mj2, из файла «outputfile.mp4»:
Метаданные:
major_brand: isom
несовершеннолетняя_версия: 512
compatibility_brands: isomiso2avc1mp41
кодировщик: Lavf57.71.100
Длительность: 03: 10: 45,73, старт: 0,000000, битрейт: 6146 кбит / с
Поток # 0: 0 (und): Видео: h264 (High) (avc1 / 0x31637661), yuv420p, 1600x900 [SAR 1: 1 DAR 16: 9], 6004 кбит / с, 59,94 кадра в секунду, 59,94 тб, 19001 тбн, 119,88 TBC (по умолчанию)
Метаданные:
имя обработчика: VideoHandler
Поток # 0: 1 (англ): Аудио: aac (LC) (mp4a / 0x6134706D), 44100 Гц, стерео, fltp, 126 кбит / с (по умолчанию)
Метаданные:
имя обработчика: SoundHandler

0