ffmpeg remuxing from MTS to MP4 now produces an unreadable audio stream
Hi all, I have been using ffmpeg regularly for a couple years to remux MTS files from my video camera into mp4 files. I use the following simple command: ``` ffmpeg -i [MTS_FILE] -acodec copy -vcodec copy [MP4_FILE] ``` Although the command I use hasn’t changed, recently this has stopped working. The resulting mp4 now contains an audio stream in a format that VLC (and Quicktime Player) can’t play. (VLC gives the following error: `VLC could not decode the format "AC-3" (No description for this codec)`) Concretely, here is the audio stream information of an MTS file I’m working with, which plays just fine: Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s Here is the audio stream information from the mp4 of this file, which I remuxed last year, and which also plays fine: Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 256 kb/s (default) And here is the audio stream information from the mp4 of this file when I remux it now using the same command, which does not play: Stream #0:1(und): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s (default) As you can see, the file that I get now has the same encoding as the MTS file, but does not play, even though the MTS file does. And the file I generated last year has a different audio encoding (even though the commands that created these files were identical), but it plays fine. If I first do what should be a vacuous remux of the MTS file with ffmpeg -i [INPUT_MTS_FILE] -acodec copy -vcodec copy [OUTPUT_MTS_FILE] the resulting MTS file has the following audio stream information: Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 256 kb/s And when I remux *this* file into an mp4 container, the resulting file plays fine, and has the same audio stream as the file created last year: Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 256 kb/s (default) But I would really rather not remux everything twice. I am using the following version of ffmpeg, which I installed with macports: ``` ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers built with Apple LLVM version 9.0.0 (clang-900.0.39.2) configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-jack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/cc --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfdk-aac libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 ``` This is the first time I’ve noticed this issue, but the last time I remuxed files (with no issue) was last October, so this has manifested sometime in the last four months or so. Does anyone have any ideas as to what is going on here? What do these various name/number pairs for the ac3 encoding mean? (e.g., `ac-3 / 0x332D6361` vs `AC-3 / 0x332D4341` vs `[129][0][0][0] / 0x0081`. I’d appreciate any help or insight on this issue. Thanks! Best regards, Galen
Sorry I forgot to include the commands and console output in my previous message. They are below.
And here is the audio stream information from the mp4 of this file when I remux it now using the same command, which does not play:
Stream #0:1(und): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s (default)
Here is the command and console output when the (non-functional) mp4 file is created from the original MTS file: ``` $ ffmpeg -i /Volumes/Untitled/private/AVCHD/BDMV/STREAM/00006.MTS -vcodec copy -acodec copy ./00006.mp4 ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers built with Apple LLVM version 9.0.0 (clang-900.0.39.2) configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-jack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/cc --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfdk-aac libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Input #0, mpegts, from '/Volumes/Untitled/private/AVCHD/BDMV/STREAM/00006.MTS': Duration: 00:00:10.56, start: 2208.672200, bitrate: 15090 kb/s Program 1 Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s [mp4 @ 0x7f9f8a000600] track 1: codec frame size is not set Output #0, mp4, to './00006.mp4': Metadata: encoder : Lavf57.83.100 Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 59.94 tbr, 90k tbn, 90k tbc Stream #0:1: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 630 fps=0.0 q=-1.0 Lsize= 18499kB time=00:00:10.52 bitrate=14394.4kbits/s speed=30.8x video:18155kB audio:330kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.073744% ```
If I first do what should be a vacuous remux of the MTS file with
ffmpeg -i [INPUT_MTS_FILE] -acodec copy -vcodec copy [OUTPUT_MTS_FILE]
the resulting MTS file has the following audio stream information:
Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 256 kb/s
Command and console output for the (vacuously?) remuxed MTS file: ``` $ ffmpeg -i /Volumes/Untitled/private/AVCHD/BDMV/STREAM/00006.MTS -vcodec copy -acodec copy ./00006-remuxed.MTS ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers built with Apple LLVM version 9.0.0 (clang-900.0.39.2) configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-jack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/cc --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfdk-aac libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Input #0, mpegts, from '/Volumes/Untitled/private/AVCHD/BDMV/STREAM/00006.MTS': Duration: 00:00:10.56, start: 2208.672200, bitrate: 15090 kb/s Program 1 Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s Output #0, mpegts, to './00006-remuxed.MTS': Metadata: encoder : Lavf57.83.100 Stream #0:0: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 59.94 tbr, 90k tbn, 90k tbc Stream #0:1: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 630 fps=0.0 q=-1.0 Lsize= 20029kB time=00:00:10.52 bitrate=15585.0kbits/s speed= 155x video:18155kB audio:330kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 8.351021% ```
And when I remux *this* file into an mp4 container, the resulting file plays fine, and has the same audio stream as the file created last year:
Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 256 kb/s (default)
Command and console output for the (functioning) mp4 file remuxed from the remuxed MTS file: ``` $ ffmpeg -i ./00006-remuxed.MTS -vcodec copy -acodec copy ./00006-remuxed.mp4 ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers built with Apple LLVM version 9.0.0 (clang-900.0.39.2) configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-jack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/cc --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfdk-aac libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Input #0, mpegts, from './00006-remuxed.MTS': Duration: 00:00:10.56, start: 1.400000, bitrate: 15542 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 256 kb/s [mp4 @ 0x7ff4d1813200] track 1: codec frame size is not set Output #0, mp4, to './00006-remuxed.mp4': Metadata: encoder : Lavf57.83.100 Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 59.94 tbr, 90k tbn, 90k tbc Stream #0:1: Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 256 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 630 fps=0.0 q=-1.0 Lsize= 18499kB time=00:00:10.52 bitrate=14394.4kbits/s speed= 167x video:18155kB audio:330kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.073744% ``` Thanks in advance for any insight or help with this! Please let me know if I can provide more information. Best, Galen On 18 Feb 2018, at 9:02, Galen Menzel wrote:
Hi all,
I have been using ffmpeg regularly for a couple years to remux MTS files from my video camera into mp4 files. I use the following simple command:
``` ffmpeg -i [MTS_FILE] -acodec copy -vcodec copy [MP4_FILE] ```
Although the command I use hasn’t changed, recently this has stopped working. The resulting mp4 now contains an audio stream in a format that VLC (and Quicktime Player) can’t play. (VLC gives the following error: `VLC could not decode the format "AC-3" (No description for this codec)`)
Concretely, here is the audio stream information of an MTS file I’m working with, which plays just fine:
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s
Here is the audio stream information from the mp4 of this file, which I remuxed last year, and which also plays fine:
Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 256 kb/s (default)
And here is the audio stream information from the mp4 of this file when I remux it now using the same command, which does not play:
Stream #0:1(und): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s (default)
As you can see, the file that I get now has the same encoding as the MTS file, but does not play, even though the MTS file does. And the file I generated last year has a different audio encoding (even though the commands that created these files were identical), but it plays fine.
If I first do what should be a vacuous remux of the MTS file with
ffmpeg -i [INPUT_MTS_FILE] -acodec copy -vcodec copy [OUTPUT_MTS_FILE]
the resulting MTS file has the following audio stream information:
Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 256 kb/s
And when I remux *this* file into an mp4 container, the resulting file plays fine, and has the same audio stream as the file created last year:
Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 256 kb/s (default)
But I would really rather not remux everything twice.
I am using the following version of ffmpeg, which I installed with macports:
``` ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers built with Apple LLVM version 9.0.0 (clang-900.0.39.2) configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-jack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/cc --arch=x86_64 --enable-x86asm --enable-libx265 --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfdk-aac libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 ```
This is the first time I’ve noticed this issue, but the last time I remuxed files (with no issue) was last October, so this has manifested sometime in the last four months or so.
Does anyone have any ideas as to what is going on here? What do these various name/number pairs for the ac3 encoding mean? (e.g., `ac-3 / 0x332D6361` vs `AC-3 / 0x332D4341` vs `[129][0][0][0] / 0x0081`. I’d appreciate any help or insight on this issue.
Thanks!
Best regards,
Galen
On 2/18/2018 1:50 PM, Galen Menzel wrote:
Here is the command and console output when the (non-functional) mp4 file is created from the original MTS file:
Does the below work? ffmpeg -i [MTS_FILE] -acodec copy -vcodec copy -atag ac-3 [MP4_FILE] Regards, Gyan
On 18 Feb 2018, at 9:36, Gyan Doshi wrote:
Does the below work?
ffmpeg -i [MTS_FILE] -acodec copy -vcodec copy -atag ac-3 [MP4_FILE]
Yes, perfectly — thank you so much! Much appreciated! Best, Galen
This worked well for me as well! Converted from an AVCHD and BDMV .mts files and fixed the tag so VLC and Quicktime can read it as normal ac-3 Thanks Gyan! -- Sent from: http://www.ffmpeg-archive.org/
And here is a link to a sample MTS file that produces the behavior: https://drive.google.com/file/d/1GupjknjnEsHWzEySR5_mDSZFoq6GCw4u/view?usp=s... Apologies for the three-part message. Best, Galen
participants (3)
-
Galen Menzel -
Gyan Doshi -
ponderednamefordays