我正在尝试通过 Ubuntu 19.10 中的 CLI 播放视频
我运行命令:
con@e:/mnt/Windows/Users/...$ vlc video.flv
VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
[000056347c5755b0] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
libva info: VA-API version 1.5.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
[00007f7e20003430] glconv_vaapi_x11 gl error: vaInitialize: unknown libva error
libva info: VA-API version 1.5.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
[00007f7e20003430] glconv_vaapi_drm gl error: vaInitialize: unknown libva error
libva info: VA-API version 1.5.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
[00007f7e20003430] glconv_vaapi_drm gl error: vaInitialize: unknown libva error
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
[flv @ 0x7f7e34c160c0] Unable to seek to the next packet
QObject::~QObject: Timers cannot be stopped from another thread
该视频在 Totem 和 VLC 中都播放,但是当我尝试寻找另一个时间时,整个事情都崩溃了。Totem 不会打印错误报告,但 VLC 会打印,所以我将其粘贴在上面。
我在这里看到过类似的帖子,例如https://ubuntuforums.org/showthread.php?t=2387235 但我在那里没有看到解决方案或https://bugs.launchpad.net/ubuntu/+source/intel -vaapi-驱动程序/+错误/1756380
我还看到了为什么 LIBVA 在尝试初始化 Intel GM965 驱动程序时会返回错误?但我不明白那里有什么可以帮助我的。
列出libva2
包,我看到:
libva2/eoan,now 2.5.0-1 amd64 [installed]
libva2/eoan 2.5.0-1 i386
这个错误只发生在某些视频上,而不是其他视频,我不知道具体是哪些。
我还看到VLC 在尝试播放视频时崩溃
这表明我这样做:
con@e:/mnt/Windows/Users/...$ vainfo
libva info: VA-API version 1.5.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
不幸的是,该页面在 > 1 年后仍未解决。
我还查看了https://forum.videolan.org/viewtopic.php?f=13&t=148280
但那里的解决方案:vlc -V x11 video.mp4
仍然返回相同的错误。
从 Windows 打开相同的文件时,VLC 有同样的问题。
输出mediainfo
:
con@e:/mnt/Windows/Users/...$ file.flv
General
Complete name : file.flv
Format : Flash Video
File size : 167 MiB
Tagged date : UTC 2009-05-30 03:59:09
Tagging application : MEGA
Video
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings : CABAC / 5 Ref Frames
Format settings, CABAC : Yes
Format settings, ReFrames : 5 frames
Codec ID : 7
Width : 416 pixels
Height : 224 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Audio
当文件可能损坏时,就像您的文件一样,有几个不错的选择:
只需更换容器。在您的情况下,您在 flv 容器中有 AVC 或 H.264,并且没有声音或很可能是 AAC 声音。这两个编解码器都非常愉快地生活在一个 mp4 容器中。因此,最好使用以下方法重新混合您的文件:
如果视频或音频编解码器本身损坏,这将无济于事。还需要注意的是,
-c:copy
只复制所有流中的第一个......重新编码文件+新容器。如果重新混合不成功,则重新编码将是另一种选择,但需要注意的是质量会明显下降。像下面这样的东西可以通过重新编码视频流来实现这一点:
如果音频流(如果存在)损坏,您也可以使用
-c:a aac -b:a 128k
.希望这会复活你的旧文件:)