LINUX.ORG.RU

Вопрос по конвертированию видео


0

1

Есть mkv-файл с видео, несколькими аудиодорожками и несколькими дорожками субтитров. Интересует, как проще всего через консоль переконвертировать видео в другой формат (желательно VP8 или Theora) с меньшим разрешением, а аудио и субтитры оставить как есть?

☆☆☆☆☆

mencoder -nosound -nosub -ovc lavc -lavcopts vcodec=libtheora:vbitrate=<bitrate> -vf scale=<w>:<h> -o temp.avi input.mkv && mkvmerge -D input.mkv temp.avi -o output.mkv

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

"-nosound - Do not play/encode sound. Useful for benchmarking."

на выходе звука не будет. вроде по смыслу так. сам конечно не проверял, но имхуется именно этот смысл.

Deleted
()
Ответ на: комментарий от Deleted

>на выходе звука не будет

Так и надо, ибо:

а аудио и субтитры оставить как есть?


mkvmerge возьмет все, кроме видео (-D), из исходного файла, добавит перекодированное видео из полученной авишки без звука, результат в output.mkv

redgremlin ★★★★★
()
Ответ на: комментарий от question4

>Не произойдёт ли при этом рассинхронизация звука и видео?

Если исходный материал не с VFR, то нет. А менкодер один фиг не понимает VFR.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

У меня в списке игнора сейчас только 2 человека, один из которых уже забанен, у другого — только один удалённый пост. Так что не я.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от redgremlin

Если ждёшь благодарности, то спасибо. Просто я ещё не проверял =)

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от redgremlin

А с помощью gstreamer вместо mencoder не подскажете, как это сделать? А то у меня из того, что установлено, только он vp8 поддерживает.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от redgremlin

Проверил, но выдаёт ошибку:

tim@tim-pc:~/Torrents/House.M.D.S05.720p.WEB-DL.Rus.Eng$ mencoder -nosound -ovc lavc -lavcopts vcodec=libtheora:vbitrate=1434 -vf scale=960:540 -o temp.avi ./House.M.D.S05E15.720p.WEB-DL.Rus.Eng.mkv && mkvmerge -D input.mkv temp.avi -o output.mkv
MEncoder SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team
success: format: 0 data: 0x0 - 0x5d7ca170
[mkv] Track ID 1: video (V_MPEG4/ISO/AVC), -vid 0
[mkv] Track ID 2: audio (A_AC3) «RUS Domashniy», -aid 0, -alang rus
[mkv] Track ID 3: audio (A_AC3) «RUS LostFilm», -aid 1, -alang rus
[mkv] Track ID 4: audio (A_AAC) «ENG 2.0», -aid 2, -alang eng
[mkv] Track ID 5: subtitles (S_TEXT/UTF8) «SUB Rus», -sid 0, -slang rus
[mkv] Track ID 6: subtitles (S_TEXT/UTF8) «SUB Eng», -sid 1, -slang eng
[mkv] Will play video track 1.
Matroska file format detected.
VIDEO: [avc1] 1280x720 24bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:31 fourcc:0x31637661 size:1280x720 fps:23.976 ftime:=0.0417
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [scale w=960 h=540]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
VDec: vo config request - 1280 x 720 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
SwScaler: reducing / aligning filtersize 7 -> 8
Last message repeated 1 times
SwScaler: reducing / aligning filtersize 7 -> 6
Last message repeated 1 times
[swscaler @ 0x215b3a0]BICUBIC scaler, from yuv420p to yuv420p using MMX2
[swscaler @ 0x215b3a0]using 8-tap MMX scaler for horizontal luminance scaling
[swscaler @ 0x215b3a0]using 8-tap MMX scaler for horizontal chrominance scaling
[swscaler @ 0x215b3a0]using n-tap MMX scaler for vertical scaling (YV12 like)
[swscaler @ 0x215b3a0]1280x720 -> 960x540
videocodec: libavcodec (960x540 fourcc=7462696c [libt])
[libtheora @ 0x20cb8e0]theora_encode_init failed
Could not open codec.
FATAL: Cannot initialize video driver.

Хотя ffmpeg2theora работает.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Ttt

>А с помощью gstreamer вместо mencoder не подскажете, как это сделать? А то у меня из того, что установлено, только он vp8 поддерживает

Я не дружен с гстримером, но алгоритм тот же должен быть - перекодировать только видео, без звука, потом, с помощью mkvmerge, старые звук/субтитры прилепить к новому видео.

Если ждёшь благодарности


То я бы на ЛОР не ходил ;) Просто, сутки спустя от моего поста, появился ответ, причем на единственное сообщение вне моей ветки. Тут первое предположение, что меня игнорят и эту ветку не видят.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

>1. Попробовать 640:360

Тогда легче скачать этот фильм в обычном качестве =) А у меня возникло желание использовать максимальное качество, которое тянет устройство, на котором будет воспроизводиться.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от redgremlin

Попробовал при помощи ffmpeg2theora с параметром --noaudio переконвертировать, в результате звук немного отстаёт от видео.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от redgremlin

А если использовать mpeg2 или какой-нибудь другой банальный кодек, то какие параметры надо подставлять? А то я с недрами mplayer не очень дружу.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Ttt

>А если использовать mpeg2 или какой-нибудь другой банальный кодек, то какие параметры надо подставлять?

Если имеется ввиду именно кодек, а не контейнер, то просто заменой vcodec=libtheora на подходящий, в случае mpeg2 это vcodec=mpeg2video. Остальное лучше не трогать, если не знаешь, что делаешь.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

Выдаёт ошибку:

MEncoder SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team
success: format: 0 data: 0x0 - 0x5cfcc250
[mkv] Track ID 1: video (V_MPEG4/ISO/AVC), -vid 0
[mkv] Track ID 2: audio (A_AC3) «RUS Domashniy», -aid 0, -alang rus
[mkv] Track ID 3: audio (A_AC3) «RUS LostFilm», -aid 1, -alang rus
[mkv] Track ID 4: audio (A_AAC) «ENG 2.0», -aid 2, -alang eng
[mkv] Track ID 5: subtitles (S_TEXT/UTF8) «SUB Rus», -sid 0, -slang rus
[mkv] Track ID 6: subtitles (S_TEXT/UTF8) «SUB Eng», -sid 1, -slang eng
[mkv] Will play video track 1.
Matroska file format detected.
VIDEO: [avc1] 1280x720 24bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:31 fourcc:0x31637661 size:1280x720 fps:23.976 ftime:=0.0417
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [scale w=960 h=540]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
VDec: vo config request - 1280 x 720 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
SwScaler: reducing / aligning filtersize 7 -> 8
Last message repeated 1 times
SwScaler: reducing / aligning filtersize 7 -> 6
Last message repeated 1 times
[swscaler @ 0xbc46a0]BICUBIC scaler, from yuv420p to yuv420p using MMX2
[swscaler @ 0xbc46a0]using 8-tap MMX scaler for horizontal luminance scaling
[swscaler @ 0xbc46a0]using 8-tap MMX scaler for horizontal chrominance scaling
[swscaler @ 0xbc46a0]using n-tap MMX scaler for vertical scaling (YV12 like)
[swscaler @ 0xbc46a0]1280x720 -> 960x540
videocodec: libavcodec (960x540 fourcc=3267706d [mpg2])
[mpeg2video @ 0xb34be0]MPEG1/2 does not support 2997/125 fps
Could not open codec.
FATAL: Cannot initialize video driver.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Ttt

>MPEG1/2 does not support 2997/125 fps

Интернеты советуют добавить :vstrict=-2 к -lavcopts

redgremlin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.