如何将 m4v(mpeg) 编解码器原始视频转换为可以播放的 mp4 文件?

问题描述

我使用以下命令可以提取mpeg4原始视频文件

ffmpeg -i D:\mp4v-mp4\test\360.mov -vcodec copy -an -f rawvideo D:\mp4v-mp4\test\360Cmdsplit_std.dat

但是如何将原始视频文件转换回可播放的 mp4 文件。 我尝试了以下 cmd,但失败了:

ffmpeg -y -f m4v -i D:\mp4v-mp4\test\360Cmdsplit_std1.dat -vcodec copy D:\mp4v-mp4\test\tmp360.mp4

解决方法

第一个 cmd(提取原始 mp4v 视频)成功,记录: D:\install\ffmpeg-4.3.1-essentials_build\bin>ffmpeg.exe -i D:\mp4v-mp4\MOV\360(mp4v_aac).mov -vcodec copy -an -f rawvideo D:\mp4v-mp4\ MOV\360mov_std.dat ffmpeg 版本 4.3.1-essentials_build-www.gyan.dev 版权所有 (c) 2000-2020 FFmpeg 开发人员 使用 gcc 10.2.0 构建(Rev1,由 MSYS2 项目构建) 配置:--enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable -gmp --enable-lzma --enable-zlib --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable -libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable -amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme - -enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libav格式 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 输入 #0,mov,mp4,m4a,3gp,3g2,mj2,from 'D:\mp4v-mp4\MOV\360(mp4v_aac).mov': 元数据: 主要品牌:qt 次要版本:512 兼容品牌:qt 编码器:Lavf58.17.101 持续时间:00:00:52.08,开始:0.000000,比特率:408 kb/s 流 #0:0(eng):视频:mpeg4(简单配置文件)(mp4v / 0x7634706D)、yuv420p、360x240 [SAR 1:1 DAR 3:2]、277 kb/s、24 fps、24 tbr、12,028 24 tbc(默认) 元数据: handler_name : VideoHandler 编码器:Lavc58.22.101 mpeg4 流 #0:1(eng):音频:aac (LC) (mp4a / 0x6134706D),44100 Hz,立体声,fltp,125 kb/s(默认) 元数据: handler_name : SoundHandler 输出 #0,rawvideo,到 'D:\mp4v-mp4\MOV\360mov_std.dat': 元数据: 主要品牌:qt 次要版本:512 兼容品牌:qt 编码器:Lavf58.45.100 流 #0:0(eng): 视频: mpeg4 (Simple Profile) (mp4v / 0x7634706D),yuv420p,360x240 [SAR 1:1 DAR 3:2],q=2-31,277 kb/s,24 fps,24 tbr、24 tbn、24 tbc(默认) 元数据: handler_name : VideoHandler 编码器:Lavc58.22.101 mpeg4 流映射: 流 #0:0 -> #0:0(复制) 按 [q] 停止,按 [?] 寻求帮助 帧= 1250 fps=0.0 q=-1.0 Lsize= 1764kB 时间=00:00:52.08 比特率= 277.5kbits/s 速度=1.47e+03x 视频:1764kB 音频:0kB 字幕:0kB 其他流:0kB 全局头:0kB 复用开销:0.000000%

将原始视频文件转换回可播放的 mp4 文件,失败:

D:\install\ffmpeg-4.3.1-essentials_build\bin>ffmpeg -y -f m4v -i D:\mp4v-mp4\MOV\360mov_std.dat -vcodec copy D:\mp4v-mp4\MOV\ tmp360.mp4 ffmpeg 版本 4.3.1-essentials_build-www.gyan.dev 版权所有 (c) 2000-2020 FFmpeg 开发人员 使用 gcc 10.2.0 构建(Rev1,由 MSYS2 项目构建) 配置:--enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable -gmp --enable-lzma --enable-zlib --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable -libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable -amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme - -enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libav格式 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 [mpeg4 @ 00000214e53d47c0] time_increment_bits 0 相对于当前比特流无效,这可能是由于缺少 VOL 标头造成的 [mpeg4 @ 00000214e53d47c0] time_increment_bits 设置为 5 位,基于比特流分析 [mpeg4 @ 00000214e53d47c0] time_increment_bits 4 相对于当前比特流无效,这可能是由于缺少 VOL 标头造成的 [mpeg4 @ 00000214e53d47c0] time_increment_bits 设置为 5 位,基于比特流分析 [mpeg4 @ 00000214e53d47c0] 看起来这个文件是用 (divx4/(old)xvid/opendivx) 编码的 -> 强制使用 low_delay 标志 [m4v @ 00000214e53cab40] 流 0 解码失败 [m4v @ 00000214e53cab40] 找不到流 0 的编解码器参数(视频:mpeg4,yuv420p):未指定大小 考虑增加 'analyzeduration' 和 'probesize' 选项的值 输入 #0,m4v,来自 'D:\mp4v-mp4\MOV\360mov_std.dat': 持续时间:不适用,开始:0.000000,比特率:不适用 流 #0:0:视频:mpeg4、yuv420p、25 fps、25 tbr、1200k tbn、25 tbc [mp4 @ 00000214e543a840] 未设置尺寸 无法为输出文件 #0 写入标头(编解码器参数不正确?):参数无效 流映射: 流 #0:0 -> #0:0(复制) 最后一条消息重复了 1 次

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...