1

У меня есть файл .mov с видео H.264 1080p и необработанным 16-битным звуком PCM, который мне нужно отредактировать (удалить часть).

Исходный файл прекрасно воспроизводится в проигрывателе фильмов и VLC в Gnome, но, как только я открываю файл в любом редакторе, он выходит из строя, при этом звук отключается (так как звука на полпути нет, а здесь миллисекунд не идет!)

Редакторы / транскодеры, которые я пробовал: VLC, Handbrake, Avidemux, OpenShot.

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

Кто-нибудь знает надежный или я что-то не так делаю?

(Я использую Ubuntu 12.04)

Это было запрошено:

$ffmpeg -i VBFT\ FINAL.mov 
ffmpeg version N-54234-gef90639 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 28 2013 05:26:06 with gcc 4.6 (Debian 4.6.3-1)
  configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
  libavutil      52. 37.101 / 52. 37.101
  libavcodec     55. 17.100 / 55. 17.100
  libavformat    55. 10.100 / 55. 10.100
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 77.101 /  3. 77.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x388f6a0] multiple edit list entries, a/v desync might occur, patch welcome
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VBFT FINAL.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2013-03-04 16:54:43
  Duration: 00:02:37.24, start: 0.000000, bitrate: 9349 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080, 4017 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
    Metadata:
      creation_time   : 2013-03-04 16:54:43
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      creation_time   : 2013-03-04 16:54:43
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
    Metadata:
      creation_time   : 2013-03-04 16:54:51
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
At least one output file must be specified

1 ответ1

1

Вы можете попробовать извлечь аудио вручную, а затем объединить его обратно:

ffmpeg -i input.mov -c:a copy out.wav
ffmpeg -i input.mov -i out.wav -c:v copy -c:a libfaac -map 0 -map 1 out.mp4

Результирующий файл MP4 будет содержать исходный видеопоток и аудиопоток, закодированный как аудио AAC, который поддерживается в контейнере MP4. Это должно дать вам файл, который вы можете легко редактировать в любой программе для редактирования видео.

Или, если вы хотите что-то вырезать, вы можете сделать это прямо сейчас с помощью ffmpeg:

ffmpeg -i input.mov -i out.wav -ss 00:01:23 -c:v copy -c:a libfaac -to 00:02:34 -map 0:v -map 1 out.mp4

Здесь -ss и -to указывают начальную и конечную метки времени соответственно. -map 0:v -map 1 указывает ffmpeg отобразить видеопоток первого входного файла и второго файла на выход.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .