Любой способ зафиксировать этот mp4, который был отключен во время записи

Я снял видео со своим телефоном на базе Android, но не удался нажать Кнопку остановки правильно. Таким образом, мой телефон разрядил память на дисках, и Видео Приложение, вероятно, просто отключило файл.

После копирования файла (размер 2,1 ГБ) на мой рабочий стол человечности я пытался выполнить его с mplayer. Вывод:

MPlayer 1.2.1 (Debian), built with gcc-5.4.0 (C) 2000-2016 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing 20190215_141432.mp4.
libavformat version 56.40.101 (external)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f0685aced80]Protocol name not provided, cannot determine if input is local or a network protocol, buffers and access patterns cannot be configured optimally without knowing the protocol
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f0685aced80]Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
LAVF_header: av_find_stream_info() failed
[lavf] stream 0: video (h264), -vid 0
VIDEO:  [H264]  1920x1080  24bpp  90000.000 fps    0.0 kbps ( 0.0 kbyte/s)
Clip info:
 major_brand: mp42
 minor_version: 0
 compatible_brands: isommp42
 creation_time: 2019-02-15 14:06:39
Load subtitles in ./
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
[vdpau] Error when calling vdp_device_create_x11: 1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 56.60.100 (external)
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
Audio: no sound
Starting playback...
V:   0.0   0/  0 ??% ??% ??,?% 0 0 


Exiting... (End of file)

Там какой-либо путь состоит в том, чтобы зафиксировать это? Возможно, существуют только некоторые метаданные, которые должны быть исправлены.

Я также попробовал это, но произвел, то же:

mplayer -lavfdopts analyzeduration=120 20190215_141432.mp4

Затем я пытался сократить видео

ffmpeg -probesize 1000M -analyzeduration 1000M 
    -i 20190215_141432.mp4 -pix_fmt yuvj420p 
    -ss 00:00:00 -c copy -t 00:05:30 new.mp4 

Но вывод о том же:

ffmpeg version 2.8.15-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
[...]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x182d380] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
20190215_141432.mp4: could not find codec parameters
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '20190215_141432.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2019-02-15 12:06:39
  Duration: 00:19:49.40, bitrate: 10308 kb/s
    Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080, SAR 1:1 DAR 16:9, 10.94 fps, 90k tbr, 90k tbn, 180k tbc (default)
    Metadata:
      rotate          : 180
      creation_time   : 2019-02-15 12:06:39
      handler_name    : VideoHandle
    Side data:
      displaymatrix: rotation of -180.00 degrees
[...]
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

Обратите внимание на то, что я указал pix_fmt, probesize и analyzeduration но добрался как ответ

неуказанный формат пикселя. Рассмотрите увеличивание значения для 'analyzeduration' и 'probesize' опций

Btw: Я попробовал pixel_format также.

Мой финал attemp, до сих пор, должен был использовать untrunc. Вывод:

Repair: 20190215_141432.mp4
Failed to parse atoms in truncated file

Обновление на (отредактированном) ответе (Fabby):

Я попробовал это

ffmpeg  -i 20190215_141432.mp4 -probesize 100M -analyzeduration 100M -map_metadata -1 -c:v libx264 -strict -2 -c:a libmp3lame -b:a 512K new.mkv

(и играемый вокруг со значениями как 1024M, 2G, 4G и размещение параметров (как предложено в здесь), но произвело, по существу:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0xc0c4a0] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
20190215_141432.mp4: could not find codec parameters
[...]
Codec AVOption b (set bitrate (in bits/s)) specified for output file #0 (new.mkv) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
[...]
[buffer @ 0xc137e0] Unable to parse option value "-1" as pixel format
    Last message repeated 1 times
[buffer @ 0xc137e0] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:0 @ 0xc133e0] Error applying options to the filter.
Error opening filters!

Я собираюсь похоронить этот вопрос, теперь.

Причины: Это - мертвый simpe для вырезания видео, видео соединения - даже roatate использование видео ffmpeg/mencoder или другие инструменты. Вырезание, присоединяясь, поворачивая действия должно (согласно моему пониманию) метаданные перестроения во-первых.

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

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

2
задан 1 April 2019 в 20:31

1 ответ

К сожалению, но с.MP4 файлами Вам нужны и заголовок и в нижний колонтитул файла для создания этого играемым, таким образом, полностью транскодирующий (и не просто копирующий) мог бы сделать это читаемым:

ffmpeg -i 20190215_141432.mp4 -probesize 100M -analyzeduration 100M -map_metadata -1 -c:v libx264 -strict -2 -c:a libmp3lame -b:a 512K 20190215_141432.mkv

Если это не помогает, содержание действительно потеряно, поскольку нижний колонтитул не может быть восстановлен от данных, Вы имеете.

2
ответ дан 2 December 2019 в 03:29

Другие вопросы по тегам:

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