我尝试播放具有以下流信息的电影文件:
Video:
Codec: Apple ProRes
Resolution: 1280x736
Fps: 50
Audio:
Codec: PCM S24 LE
Sampling rate: 48000 Hz
Bits per sample: 24
Bitrate: 12288 kB/s
问题是 VLC 可以播放视频,但不能播放音频。我该如何解决?
如果sudo aplay -l
意思是:
**** List of PLAYBACK Hardware Devices ****
Home directory not accessible: Permission denied
card 0: PCH [HDA Intel PCH], device 0: ALC269VB Analog [ALC269VB Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC269VB Digital [ALC269VB Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
尝试答案中显示的命令时:
avconv -i $myfile.mov -c:a flac -c:v copy $myfile.mkv
我明白了
avconv version 9.18-6:9.18-0ubuntu0.14.04.1+fdkaac, Copyright (c) 2000-2014 the Libav developers
built on Apr 10 2015 23:18:58 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/media/roland/Hitachi/Capture0000.mov':
Metadata:
creation_time : 2000-01-20 15:56:31
Duration: 00:48:31.32, start: 0.000000, bitrate: 102914 kb/s
Stream #0.0(eng): Data: tmcd / 0x64636D74
Metadata:
creation_time : 2000-01-20 15:56:31
Stream #0.1(eng): Video: prores, yuv422p10le, 1280x720, 84447 kb/s, PAR 1:1 DAR 16:9, 50 fps, 50 tbr, 5k tbn
Metadata:
creation_time : 2000-01-20 15:56:31
Stream #0.2(eng): Audio: pcm_s24le, 48000 Hz, 16 channels, s32, 18432 kb/s
Metadata:
creation_time : 2000-01-20 15:56:31
[abuffer @ 0x14f2b60] Invalid channel layout 0x0.
Error opening filters!
答案1
我猜 PCM S24 LE 48kHz/24Bit 非常罕见,VLC 还不期望也不支持媒体文件中的 PCM。PCM 效率也很低,FLAC 等无损编解码器提供相同的质量。使用库/ffmpeg您可以复制视频并将音频流转换为 FLAC,这样您就可以播放音频:
avconv -i $myfile.mov -c:a flac -c:v copy $myfile.mkv
我之前曾在音乐会蓝光上看到过 (L)PCM 24Bit 音频,音频确实播放了,但在实际音频流之上有一个非常响亮的信号 - 这可能是格式解析错误。
我在这里选择 MKV 容器作为输出格式,因为据我所知它没有格式限制并且可扩展性很强,将 MOV 或 MP4 与 FLAC 配对可能不起作用。
最后要注意的是,制作此文件的人应该检查这是否真的是想要的结果。50fps 是可以的,可能表明这是 PAL 或其他非 NTSC 内容,但 1280x736 比 720p(1280x720)高出 16 个像素,这可能对于编解码器或编码器来说没问题,但不是最佳的,甚至与典型的播放设备不兼容。
第三个流是出乎意料的(而且你没有说你从看起来像相机的东西中提取原始材料),我们可能可以映射为仅在输出中包含视频和音频,而忽略看起来像时间码的数据。
avconv -i $myfile.mov -map 0:1 -c:v copy -map 0:2 -c:a flac $myfile.mkv
SuperUser 上也有类似的问题:ffmpeg 删除第三个流不起作用以及相关如何使用 avconv 删除音频流?
也许还要注意的是,我们有一个网站视频制作。