Заметка под аффектом от ffmpeg.
В двух вещах понадобился ffmpeg и как оказалось что он гораздо круче gui тулз.
-
Совместить видео и аудио без декодирования.
Хотел скачать видео в дорогу с youtube через savefrom
Насколько понимаю отдельно лежат video и аудиофайлы, при скачивании в нужном мне качестве имеем два файла (videoplayback.mp4 и звук - videoplayback.m4a) собрать из них один очень просто (скорость моментальная):
time ffmpeg -i videoplayback.mp4 -i videoplayback.m4a -vcodec copy -acodec copy output.mp4
real 0m1.677s
user 0m0.287s
sys 0m0.105s
-
Грабинг DVD h256.
Раньше (когда дотрагивался) этот процесс занимал целую вечность, сейчас при аппаратном ускорении буквально минуты, да и размер файла оказывается минимальным.
ffmpeg дб собрать с поддержкой HW-acceleration, для nvivdia -- nvenc
equery u ffmpeg |grep nvenc
+nvenc
ffmpeg -hwaccels shows
...
Hardware acceleration methods:
vdpau
cuda
vaapi
opencl
vulkan
...
В папке DVD (как правило VIDEO_TS) находятся видеофайлы. Для уменьшения размера выходного файла оставляем только нужную дорожку:
ffprobe VTS_01_1.VOB
...
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn
Side data:
cpb: bitrate max/min/avg: 8500000/0/0 buffer size: 1835008 vbv_delay: N/A
Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
Stream #0:3[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
Имеется 2 аудио-дорожки, искомая (0:2) - отображается в mpv как 1 звуковая дорожка, 0:1 - видео дорожка.
Ну и сам граббинг
time ffmpeg -i concat:VTS_01_1.VOB\|VTS_01_2.VOB\|VTS_01_3.VOB\|VTS_01_4.VOB\|VTS_01_5.VOB -map 0:1 -map 0:2 -c:v hevc_nvenc output.mp4
real 3m44.409s
user 5m39.764s
sys 0m11.438s
за 4 минуты из 6Гб выходной файл размером в 1.5Гб, при этом мне кажется даже карта особо не напрягается -- каеф...